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

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

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

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

1.先建立一個Asp.net MVC的空項目

添加一個控制器  (同樣的代碼在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.再興建一個控制器和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");
        }

        //新建一個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ā)起請求
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.最終效果為:

頁面上顯示一個時間,每隔半秒鐘更新一次

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

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

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

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《頁面間隔半秒鐘更新時間 Asp.net使用Comet開發(fā)http長連接示例分享》,本文關(guān)鍵詞  頁面,間隔,半秒鐘,更新,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《頁面間隔半秒鐘更新時間 Asp.net使用Comet開發(fā)http長連接示例分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于頁面間隔半秒鐘更新時間 Asp.net使用Comet開發(fā)http長連接示例分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章