婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

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

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

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

復制代碼 代碼如下:

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

復制代碼 代碼如下:

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

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

    }

View的代碼比較重要

復制代碼 代碼如下:

@{
    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;
                    }
                }
            }
        }

        //發起請求
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); }
        }

        //檢查狀態
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);
                }
            }
        }

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

3.最終效果為:

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

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

4.這個例子只是基于異步Javascript的一個實現,

實際上還可以通過iframe> 和 script>這兩個標簽做實現,特別是script標簽可以訪問和執行跨域的javascript

您可能感興趣的文章:
  • Ajax和Comet技術總結
  • 詳解Tomcat如何實現Comet
  • JavaScript數據推送Comet技術詳解
  • 使用Java實現類似Comet風格的web app
  • BitComet 0.89 去廣告簡潔優化版 下載
  • Comet框架Plushlet使用問題解決方案

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

巨人網絡通訊聲明:本文標題《頁面間隔半秒鐘更新時間 Asp.net使用Comet開發http長連接示例分享》,本文關鍵詞  頁面,間隔,半秒鐘,更新,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《頁面間隔半秒鐘更新時間 Asp.net使用Comet開發http長連接示例分享》相關的同類信息!
  • 本頁收集關于頁面間隔半秒鐘更新時間 Asp.net使用Comet開發http長連接示例分享的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 龙川县| 贡觉县| 阜阳市| 越西县| 南和县| 竹溪县| 嘉祥县| 健康| 仙居县| 康保县| 凤阳县| 繁峙县| 内黄县| 于都县| 舟山市| 五河县| 台北县| 桐城市| 大埔区| 隆德县| 玉树县| 九台市| 淮阳县| 宁海县| 家居| 米泉市| 轮台县| 海淀区| 金湖县| 阿城市| 洛南县| 安乡县| 武鸣县| 方正县| 裕民县| 阿图什市| 习水县| 北票市| 陕西省| 兴和县| 固始县|