欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Asp.net的服務(wù)器推技術(shù) (Server Push)

 更新時(shí)間:2010年01月22日 21:41:24   作者:  
在以往的和服務(wù)器端通信技術(shù)中,我們多數(shù)使用的是AJAX輪詢式訪問,也就是在Javascript中控制時(shí)間間隔,然后每隔一段時(shí)間就訪問一次服務(wù)器,然后獲得數(shù)據(jù)或通知。但是這種輪詢方式的訪問有90%是在做無(wú)用功。
要想長(zhǎng)時(shí)間保持服務(wù)器和瀏覽器之間的連接怎么辦?長(zhǎng)連接技術(shù),這可不是什么新技術(shù),用IFrame作為隱藏幀指向長(zhǎng)請(qǐng)求頁(yè)面的方法早已被很多人運(yùn)用在互聯(lián)網(wǎng)上,但是IFrame作為隱藏幀有一個(gè)弊端,那就是瀏覽器的進(jìn)度條始終處在讀取狀態(tài)。為了使用戶獲得更好體驗(yàn),“Google的天才們”使用了一個(gè)叫“htmlfile”的對(duì)象解決了這一問題,并把它運(yùn)用了了GMail和GTalk兩個(gè)產(chǎn)品上。
如今我們公司要做的新項(xiàng)目上要求有實(shí)時(shí)報(bào)警功能,本來(lái)我想用AJAX輪詢做,但是覺得挺沒追求的,前段時(shí)間聽說有了Server Push,但是沒仔細(xì)研究,這次倒是個(gè)機(jī)會(huì),一天時(shí)間,從網(wǎng)上搜集資料。資料不是很多,而且現(xiàn)在有很多開發(fā)人員還認(rèn)為長(zhǎng)連接是天方夜譚,居然還有把HTTP協(xié)議搬出來(lái)要證明自己觀點(diǎn)的……
廢話不多說了,來(lái)介紹一下長(zhǎng)連接技術(shù),通常的長(zhǎng)鏈接就是做一個(gè)網(wǎng)頁(yè),里面寫好一個(gè)IFrame標(biāo)簽,高寬設(shè)置為0,SRC屬性指向一個(gè)網(wǎng)頁(yè),比如是ASPX,然后在這個(gè)文件中不做別的,只是在調(diào)用Context.Response.Write方法,輸出什么?比如客戶端有一個(gè)更改時(shí)間的方法Change(time),那輸出就是("<script>window.parent.Change("+DateTime.Now.ToString()+")</script>"),也就是不斷的輸出客戶端的函數(shù)調(diào)用,并且做成死循環(huán),這樣瀏覽器和服務(wù)器端就形成了一條源源不斷的數(shù)據(jù)傳輸鏈接。
那htmlfile是什么呢?這是一個(gè)類似Javascript中Window對(duì)象的一個(gè)ActiveXObject,它內(nèi)部也是DOM結(jié)構(gòu),將作為隱藏幀的IFrame寫入這個(gè)對(duì)象中,就可以解決進(jìn)度條的問題。說的可能比較晦澀,來(lái)看實(shí)例代碼吧:
Default.aspx.cs
c# 代碼
復(fù)制代碼 代碼如下:

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void Render(HtmlTextWriter output)
{
string str;
while (true)
{//死循環(huán)保持長(zhǎng)鏈接
str = "<script >window.parent.Change('" + DateTime.Now.ToLongTimeString() + "')</script>";
this.Context.Response.Write(str);
this.Context.Response.Flush();//輸腳本調(diào)用出
System.Threading.Thread.Sleep(1000);
}
}
}

WebForm1.aspx
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Asp.net Server Push</title>
<script type="text/javascript">
function Change(str){
window.document.getElementById("div1").innerText=str;
}
function onload(){
var ifrpush = new ActiveXObject("htmlfile"); // 創(chuàng)建對(duì)象
ifrpush.open(); //打開
var ifrDiv = ifrpush.createElement("div"); //添加一個(gè)DIV
ifrpush.appendChild(ifrDiv); //添加到 htmlfile
ifrpush.parentWindow.Change=Change; //注冊(cè) javascript 方法 搞不明白為什么還要注冊(cè)
ifrDiv.innerHTML = "<iframe src='Default.aspx'></iframe>"; //在div里添加 iframe
ifrpush.close(); //關(guān)閉
}
onload();
</script>
</head>
<body>
<div style=" float:left">現(xiàn)在時(shí)間是:</div>
<div id="div1"></div>
</body>
</html>

Default.aspx不需要做修改。
serverpush.rar

相關(guān)文章

  • .net5?使用Hangfire的過程記錄

    .net5?使用Hangfire的過程記錄

    最近項(xiàng)目遇到這樣的需求,需要實(shí)現(xiàn)根據(jù)領(lǐng)取時(shí)間改變優(yōu)惠券狀態(tài)的功能,本文給大家分享.net5?使用Hangfire的過程記錄,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • 詳解ASP.NET與ASP.NET Core用戶驗(yàn)證Cookie并存解決方案

    詳解ASP.NET與ASP.NET Core用戶驗(yàn)證Cookie并存解決方案

    本篇文章主要介紹了詳解ASP.NET與ASP.NET Core用戶驗(yàn)證Cookie并存解決方案 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • ASP.NET Core Authentication認(rèn)證實(shí)現(xiàn)方法

    ASP.NET Core Authentication認(rèn)證實(shí)現(xiàn)方法

    這篇文章主要介紹了ASP.NET Core Authentication認(rèn)證實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • ?ASP.NET Core 模型驗(yàn)證過濾器的兩種實(shí)現(xiàn)方法

    ?ASP.NET Core 模型驗(yàn)證過濾器的兩種實(shí)現(xiàn)方法

    ?在.Net Core的時(shí)代中,框架會(huì)幫你自動(dòng)驗(yàn)證,本文主要介紹了?ASP.NET Core 模型驗(yàn)證過濾器的兩種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • .NetCore利用BlockingCollection實(shí)現(xiàn)簡(jiǎn)易消息隊(duì)列

    .NetCore利用BlockingCollection實(shí)現(xiàn)簡(jiǎn)易消息隊(duì)列

    這篇文章主要介紹了.NetCore利用BlockingCollection實(shí)現(xiàn)簡(jiǎn)易消息隊(duì)列,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-09-09
  • 詳解ASP.NET WEB API 之屬性路由

    詳解ASP.NET WEB API 之屬性路由

    本篇文章主要介紹了ASP.NET WEB API 之屬性路由,路由就是Web API如何把URI匹配到一個(gè)Action的描述。有興趣的可以了解一下。
    2017-03-03
  • AJAX使用post發(fā)送數(shù)據(jù)xml格式接受數(shù)據(jù)

    AJAX使用post發(fā)送數(shù)據(jù)xml格式接受數(shù)據(jù)

    AJAX使用post發(fā)送數(shù)據(jù)xml格式接受數(shù)據(jù),需要的朋友可以參考一下
    2013-03-03
  • ASP.NET對(duì)無(wú)序列表批量操作的三種方法小結(jié)

    ASP.NET對(duì)無(wú)序列表批量操作的三種方法小結(jié)

    在網(wǎng)頁(yè)開發(fā)中,經(jīng)常要用到無(wú)序列表。事實(shí)上在符合W3C標(biāo)準(zhǔn)的div+css布局中,無(wú)序列表被大量使用,ASP.NET雖然內(nèi)置了BulletedList控件,用于創(chuàng)建和操作無(wú)序列表,但感覺不太好用
    2012-01-01
  • Linux下部署.net core環(huán)境的步驟詳解

    Linux下部署.net core環(huán)境的步驟詳解

    這篇文章主要給大家介紹了在Linux下部署.net core環(huán)境的步驟,文中給出了詳細(xì)的介紹,相信對(duì)大家的學(xué)習(xí)或者工作具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • Asp.Net2.0權(quán)限樹中Checkbox的操作

    Asp.Net2.0權(quán)限樹中Checkbox的操作

    Asp.Net2.0權(quán)限樹中Checkbox的操作...
    2006-09-09

最新評(píng)論