濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 頁面間隔半秒鐘更新時(shí)間 Asp.net使用Comet開發(fā)http長(zhǎng)連接示例分享

頁面間隔半秒鐘更新時(shí)間 Asp.net使用Comet開發(fā)http長(zhǎng)連接示例分享

熱門標(biāo)簽:云狐人工智能電話機(jī)器人 地圖標(biāo)注多少錢一張 福州人工智能電銷機(jī)器人加盟 400電話辦理信任翰諾科技 怎樣給陜西地圖標(biāo)注顏色 宿遷智能外呼系統(tǒng)排名 廣州銷售外呼系統(tǒng)定制 電銷機(jī)器人 數(shù)據(jù) ai電銷機(jī)器人對(duì)貸款有幫助嗎

好處:1.和AJAX輪詢比起來 節(jié)省資源,并且延遲小, 2.和webSocket比起來,適用的場(chǎng)景比較廣泛。

1.先建立一個(gè)Asp.net MVC的空項(xiàng)目

添加一個(gè)控制器  (同樣的代碼在Asp.net WebForm中也是可以使用的)

復(fù)制代碼 代碼如下:

public class CometController : Controller
    {
        public ActionResult Test()
        {
            Response.Buffer = false;
            while (true)
            {
                Response.Write(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss FFF") + "|");
                Thread.Sleep(500);
            }
            //跑不到這里的
            return Content("");
        }
    }
}

2.再興建一個(gè)控制器和View 用于顯示HTML

復(fù)制代碼 代碼如下:

public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }

    }

View的代碼比較重要

復(fù)制代碼 代碼如下:

@{
    Layout = null;
}
!DOCTYPE html>
html>
head>
    title>Index/title>
    script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js">/script>
    script language="javascript">
        var req = false;
        var lastDelimiterPosition = -1;

        $(document).ready(function () {
            getData();
        });

        function getData() {
            loadXMLDoc("/Comet/Test");
        }

        //新建一個(gè)XHR
function createRequest() {
            if (window.XMLHttpRequest !(window.ActiveXObject)) {
                try {
                    req = new XMLHttpRequest();
                } catch (e) {
                    req = false;
                }        // branch for IE/Windows ActiveX version  
            } else if (window.ActiveXObject) {
                try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
                    try {
                        req = new ActiveXObject("Microsoft.XMLHTTP");
                    } catch (e) {
                        req = false;
                    }
                }
            }
        }

        //發(fā)起請(qǐng)求
function loadXMLDoc(url) {
            try {
                if (req) {
                    req.abort();
                    req = false;
                }
                createRequest();
                if (req) {
                    req.onreadystatechange = processReqChange;
                    req.open("GET", url, true);
                    req.send("");
                } else {
                    alert('unable to create request');
                }
            } catch (e) { alert(e.message); }
        }

        //檢查狀態(tài)
function processReqChange() {
            if (req.readyState == 3) {
                try {
                    ProcessInput(req.responseText);
                    if (req.responseText.length > 3000) {
                        lastDelimiterPosition = -1; getData();
                    }
                }
                catch (e) {
                    alert(e.message);
                }
            }
        }


        //拆分字符串
function ProcessInput(input) {
            var text = input;
            var nextDelimiter = text.indexOf('|', lastDelimiterPosition + 1);
            if (nextDelimiter != -1) {
                var timeStamp = text.substring(nextDelimiter + 1);
                if (timeStamp.length > 0) {
                    lastDelimiterPosition = nextDelimiter;
                    ProcessTime(timeStamp);
                }
            }
        }

        //輸出 或者觸發(fā)什么事件
function ProcessTime(time) {
            document.getElementById('div1').innerHTML = time;
        }
    /script>
/head>
body>
    div>
        div id="div1">
        /div>
        div id="div2">
        /div>
    /div>
/body>
/html>

3.最終效果為:

頁面上顯示一個(gè)時(shí)間,每隔半秒鐘更新一次

當(dāng)然,拿到內(nèi)容以后,其實(shí)你想做什么就做什么。。。更新DOM也好,執(zhí)行js也好, (還好有eval這個(gè)方法~~)

4.這個(gè)例子只是基于異步Javascript的一個(gè)實(shí)現(xiàn),

實(shí)際上還可以通過iframe> 和 script>這兩個(gè)標(biāo)簽做實(shí)現(xiàn),特別是script標(biāo)簽可以訪問和執(zhí)行跨域的javascript

您可能感興趣的文章:
  • Ajax和Comet技術(shù)總結(jié)
  • 詳解Tomcat如何實(shí)現(xiàn)Comet
  • JavaScript數(shù)據(jù)推送Comet技術(shù)詳解
  • 使用Java實(shí)現(xiàn)類似Comet風(fēng)格的web app
  • BitComet 0.89 去廣告簡(jiǎn)潔優(yōu)化版 下載
  • Comet框架Plushlet使用問題解決方案

標(biāo)簽:新疆 綿陽 曲靖 延安 焦作 黃南 大興安嶺 宜春

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《頁面間隔半秒鐘更新時(shí)間 Asp.net使用Comet開發(fā)http長(zhǎng)連接示例分享》,本文關(guān)鍵詞  頁面,間隔,半秒鐘,更新,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《頁面間隔半秒鐘更新時(shí)間 Asp.net使用Comet開發(fā)http長(zhǎng)連接示例分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于頁面間隔半秒鐘更新時(shí)間 Asp.net使用Comet開發(fā)http長(zhǎng)連接示例分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    忻城县| 苏尼特右旗| 鸡东县| 荥阳市| 凤阳县| 龙海市| 镇赉县| 德清县| 瑞丽市| 东至县| 宁强县| 吉安市| 彩票| 确山县| 宜丰县| 包头市| 兴国县| 东城区| 朝阳县| 华容县| 高平市| 肥西县| 平湖市| 伊金霍洛旗| 松滋市| 民乐县| 水城县| 图木舒克市| 潼关县| 石阡县| 威海市| 长治县| 广昌县| 吉木萨尔县| 策勒县| 荔浦县| 灵丘县| 胶州市| 定安县| 育儿| 晋中市|