偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

淺入淺出 Server Push

開發(fā) 后端
Server Push,即是服務(wù)器推送技術(shù)。本文通過引入Threading的類庫,淺談Server Push,一起來看。

推送技術(shù)Server Push的基礎(chǔ)思想是將瀏覽器主動查詢信息改為服務(wù)器主動發(fā)送信息。服務(wù)器發(fā)送一批數(shù)據(jù),瀏覽器顯示這些數(shù)據(jù),同時保證與服務(wù)器的連接。當服務(wù)器需要再次發(fā)送一批數(shù)據(jù)時,瀏覽器顯示數(shù)據(jù)并保持連接。以后,服務(wù)器仍然可以發(fā)送批量數(shù)據(jù),瀏覽器繼續(xù)顯示數(shù)據(jù),依次類推。

最近在做一個即時顯示的面板頁面。

需求:

1.即時顯示;

2.無刷新。

做Web的話,一聽到無刷新,馬上想到的就會是Ajax,我第一版的實現(xiàn)方法是Ajax的Updatepanel+Timer控件,定時向服務(wù)器發(fā)出Request。實現(xiàn)是沒有問題,但是對于資源的消耗非??植溃梢赃@么說。打開進程管理器,可以看到數(shù)據(jù)庫和瀏覽器(因為是在本機上做)的CPU占用比較高,并且瀏覽器的內(nèi)存占用一直在上升。。。囧——不用再多解釋了,你懂的。。。

資料到處找,各種找,從Fighting Team.SDF那里,了解到了Server Push——服務(wù)器推送技術(shù)??戳艘粌蓚€不怎么完整的Demo(網(wǎng)上這方面的資料,真不多,要不就是各種哥各種轉(zhuǎn)載的)后,開始實施。來,直接貼代碼:

這里要引入Threading的類庫:

  1. using System.Threading;  
  2. ///后臺程序段:  
  3. /// <summary>  
  4. /// 以發(fā)送服務(wù)端控制信息的方式提供HtmlTextWriter對象   
  5. /// </summary>   
  6. /// <param name="writer"></param>   
  7. protected override void Render(HtmlTextWriter writer)   
  8. {   
  9. base.Render(writer);   
  10. while (Response.IsClientConnected)   
  11. {   
  12. Response.Write("<script>Display('" + SQLHelper.select().ToString() + "')\n </script> ");   
  13. Response.Flush();   
  14. Thread.Sleep(41);   
  15. }   

可以看到,其實代碼非常簡單,就是重寫了Rander方法。方法里,做一個死循環(huán),將后臺數(shù)據(jù)庫里的數(shù)據(jù),不停地Response到前臺,展示給用戶。就實現(xiàn)了這么一個推送的動作。

小總結(jié)一下:這個方法因為只有一個推送,比之前用Timer定時發(fā)送Request,再接受Response的方法優(yōu)化許多,不僅減少了服務(wù)器的開銷,也降低了數(shù)據(jù)庫的負荷。再打開進程管理器看一下,CPU和內(nèi)存的占用都比較低。不過可以相對性既然存在,那么說明這個方法也有不利的一方面:ClientConnected意思是,客戶端連入,就是說客戶端沒有斷開與服務(wù)端的連接。我們知道服務(wù)器的連入數(shù)是有限制的,如果一直保持連接狀態(tài)不斷開連接的話,那么連入數(shù)一多,這個資源的消耗又是很可怕的。所以權(quán)衡完Server Push技術(shù),比較適合用在連入數(shù)少的場合,比如像信息顯示面板之類的,連入數(shù)都不較少,比較單一,則不會占用太多的資源。

【編輯推薦】

  1. 淺析.NET中的Server push技術(shù)
  2. 2011年移動用戶體驗趨勢:信息推送技術(shù)
  3. 詳解ASP.NET自定義控件開發(fā)實例
  4. 詳解ASP.NET MVC 3新的Layout布局系統(tǒng)
責任編輯:于鐵 來源: 博客園
相關(guān)推薦

2021-05-17 09:58:00

MySQL索引數(shù)據(jù)庫

2021-02-07 08:02:33

Linux內(nèi)核開源

2017-09-07 15:43:24

數(shù)據(jù)庫MongoDBMySQL

2022-01-06 07:59:32

WebGPUOpenGL引擎

2020-03-06 10:16:55

Spring數(shù)據(jù)庫框架

2011-07-04 10:39:57

Web

2021-03-16 08:54:35

AQSAbstractQueJava

2021-06-21 08:58:14

MySQL數(shù)據(jù)庫Pages

2022-09-26 09:01:15

語言數(shù)據(jù)JavaScript

2019-01-07 15:29:07

HadoopYarn架構(gòu)調(diào)度器

2012-05-21 10:06:26

FrameworkCocoa

2021-07-20 15:20:02

FlatBuffers阿里云Java

2017-07-02 18:04:53

塊加密算法AES算法

2023-12-04 13:22:00

JavaScript異步編程

2016-10-14 14:32:58

JavascriptDOMWeb

2010-07-26 12:57:12

OPhone游戲開發(fā)

2021-07-19 11:54:15

MySQL優(yōu)先隊列

2016-10-14 13:53:05

JavascriptDOMWeb

2010-07-16 09:11:40

JavaScript內(nèi)存泄漏

2009-11-17 17:31:58

Oracle COMM
點贊
收藏

51CTO技術(shù)棧公眾號