您現在的位置是:電腦技術吧?>? 基礎知識 ??>??環境什么,關于環境??>??正文詳情

環境什么,關于環境

佴覓云2019-11-25 09:11:20 人圍觀
簡介我們與環境HTTP環境本身是一個無連接的體系結構。在這種體系結構中,服務器只能被動地接受客戶端的請求并返回結果,而不能主動地向客戶端發送數據。在許多需要實時數據交互的場

Http環境本身是一種無連接狀態的架構,在這種架構下服務器只能是被動的接受客戶端的請求,返回結果,而無法主動的給客戶端發送數據。

而在很多需要實時數據交互(比如Web IM)的場景中,我們卻希望能及時得到服務器給我們返回的數據。

此時,一種最為普遍的做法是:在客戶端用定時器,定時去請求服務器的服務,來得到最新數據。

而這樣一來,很多時候卻是在做無用功,頻繁的請求也會無端的增加服務器和客戶端在請求Web服務上的消耗。

那么是否有一種更好的辦法,既可以及時得到服務器的返回,同時又可以減少做無用功,以及頻繁請求帶來的性能問題呢?  記得前不久,在園子里有這樣的一篇文章,介紹了幾種WEB環境定時刷新數據的機制。

其中就有提到google gmail的一種比較巧妙的做法,現在記不得當時是怎么理解這種做法了,只記得有保持長連接的基本做法。

(當然現在也找不到這篇文章了,希望了解的朋友能提醒一下)。

今天由于架構方案的需要,再來仔細思考連接保持方案,以及參考gmail的請求行為,總結了一下,應該是這樣的:客戶端一直保持一個與服務器的連接,這個連接一直保持著對服務器的請求動作,直到服務器發現有數據后給它返回后,才結束返回這一次請求。

客戶端在接收到請求返回后,在處理這些返回之前,又向服務器發送了一次連接請求,直到下一次有數據返回。

不可避免的有一種情況,就是如果服務器長時間沒有需要給客戶端發送數據的話,那么可以就會造成請求失敗(超時或其它原因)。

對于這種情況的處理也是一樣的,在錯誤的回調事件中重新發送一次請求連接。

這樣就可以模擬保持連接狀態了。

  用偽代碼來描述一下思路吧:  客戶端腳本:  1: function Request()  2: {  3: Ajax.Request(url,OnSuccessed,OnFailed);  4: }  5: function OnSuccessed(response)  6: {  7: //重新發送一次請求  8: Request();  9: //處理返回數據  10: }  11: function OnFailed()  12: {  13: //錯誤(超時)重新請求  14: Request();  15: }  Web服務:  1: public class IMService : IHttpHandler  2: {  3: public bool IsReusable{return false;}  4: public void ProcessRequest(HttpContext context)  5: {  6: //讀取最新數據  7: while(true)  8: {  9: string message = GetMessage();  10: if(!string.IsNullOrEmpty(message))  11: {  12: context.Response.Write(message);  13: break;  14: }  15: Thread.Sleep(500);//等待一段時間再重新讀取。

  16: }  17: }  18: private string GetMessage()  19: {  20: //取得最新數據  21: }  22: }  這種方案的好處有:客戶端可以第一時間得到服務器需要給客戶端發送的數據(而至于Web服務怎么知道要給客戶端發送數據,也就是服務器的輪循設計,則是另一個需要考慮的方案);可以減化客戶端邏輯,無需要創建和釋放定時器,并減小由此產生的對客戶端性能的損失;減少去服務器的請求次數,減少做無用功,節約節省帶寬和減少服務器資源需要處理的連接請求。

  相信在此之前,已經有很多人在使用這種方案了。

歡迎大家就此方案發表自己的見解。

  補充:服務器部分的設計,除了使用輪循外,也可以考慮使用資源互斥訪問的方式來設計,這樣做可以獲得更佳性能,更高實時性,具體的方案應當根據實際情況來考慮。

版權聲明:本文由 佴覓云 整理編輯。

原標題:環境改善環境,適應環境

轉載注明出處:http://www.dn9ww09s.icu/basics/14265.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 魔獸世界APP,魔獸世界任務app

    魔獸世界APP,魔獸世界任務app 相關圖片魔獸世界官方助手近日,不少魔獸世界玩家反映,在使用魔獸世界應用程序的過程中,總會遇到顯示網絡錯誤無法連接的情況。那么魔獸世界的應用程序顯示網絡錯誤無法連接呢?現在...

  • 頁面編碼,頁面編碼怎么設置

    頁面編碼,頁面編碼怎么設置 相關圖片html設置編碼Dreamweaver CS3的默認UTF-8代碼更改為GB2312,因此我們的新網頁將為GB2312。編輯根據廣大考生的需求,專門設計了Dreamweaver設置網頁編碼...

  • 語音翻譯app,ios翻譯

    語音翻譯app,ios翻譯 相關圖片語音翻譯app哪個好用自iOS11在WWDC大會上與您見面以來,其語音翻譯功能備受關注。那么如何使用ios11語音翻譯呢?接下來,超人軟件將為您介紹ios11語音翻譯功能的使用iphone實時語音翻譯...

  • 特效制作教程,制作特效

    特效制作教程,制作特效 相關圖片手機特效制作本教程將教您如何使用焰火制作分解效果。制作效果很酷很簡單。我覺得學了以后很好。我建議和你分享。希望你喜歡!事實上,許多軟件很容易達到這種效果。簡而言之...

  • 2019蘇寧易購818,蘇寧2017年 營業額

    2019蘇寧易購818,蘇寧2017年 營業額 相關圖片蘇寧618本周末,我們將迎來電子商務大亨的年中促銷活動。那么,蘇寧電子商務618有什么活動嗎?值得一提的是,蘇寧電子商務的獨特起步于616年。接下來,超人軟件將為您帶來2蘇寧賽...

  • 遮罩羽化,pr遮罩羽化

    遮罩羽化,pr遮罩羽化 相關圖片PS羽化一。打開閃存軟件2。創建新文檔,參數默認值3。將兩張圖片導入庫4。從默認層上的庫中拖動圖片對齊場景作為背景鎖定層5。添加一個圖層,從庫中拖動一個圖片對齊場景模糊p...

  • 什么是理性農業,理性農業科普

    什么是理性農業,理性農業科普 相關圖片甘肅理性農業在rational農業軟件中,用戶可以通過邀請碼邀請朋友下載并注冊該軟件,從而獲取利潤。理性農業如何創造自己的邀請碼?下一步,超人軟件將介紹多少理性農業邀請碼是理...

  • 信用卡額度,哪個銀行信用卡額度高

    信用卡額度,哪個銀行信用卡額度高 相關圖片分期付款信用額度惠盛登臺是一款快速購物軟件。這里有許多精美的商品。你不需要賣腎,因為你可以在這里分期付款。那么如何分階段操作匯款生命周期的激活額度呢?接下來,超人...

  • 投票ip被限制怎么辦,ip不在投票區域內

    投票ip被限制怎么辦,ip不在投票區域內 相關圖片手機如何修改ip投票HTML5的投票網站欺騙限制IP的方案是利用投票網站監控遠程IP的一些漏洞來實現的。沒有真正的IP地址偽造。HTTP是建立的TCP之上的第七層,不能偽造真實IP公眾號怎樣查...

  • 請充值和請投幣的區別,請充值

    請充值和請投幣的區別,請充值 相關圖片投幣股票跟蹤投資是一個非常好的股票投資軟件。在這個軟件中,用戶可以學習如何進行股票后續投資。接下來,超人軟件編輯將介紹股票后續投資及充值過程。希望你喜歡!股票后續...

熱評文章

  • 隔空傳送找不到對方,為什么隔空傳送找不到別人

    隔空傳送找不到對方,為什么隔空傳送找不到別人 相關圖片隔空傳送在哪里打開近日,不少網友反映,在使用文件輕松傳輸功能時找不到該文件。如果win7找不到便于傳輸的文件怎么辦?接下來,超人軟件將向您介紹如果win7找不到便于傳輸的文件...

  • 資源管理器,資源管理器在哪里

    資源管理器,資源管理器在哪里 相關圖片資源管理器重啟最近,很多小伙伴都報告說,他們的電腦收藏夾無法擴展,即使恢復收藏夾也無法解決這個問題。win7資源管理器收藏夾呢接下來,超人軟件將引入win7資源管理怎么重啟資...

  • 網頁設計,優秀網站網頁設計

    網頁設計,優秀網站網頁設計 相關圖片網頁設計排版有人曾經說過,如果你想知道一個網頁設計師是否專業,讓他設計一個黑色系的網站。事實上,大多數真正漂亮的黑色系網站都來自真正的專業設計師。黑色是一種經典的...

  • 藍屏0x000000d1怎么辦,0x0000001e藍屏

    藍屏0x000000d1怎么辦,0x0000001e藍屏 相關圖片藍屏最近,許多合作伙伴報告說,他們的win10系統計算機在打開時的錯誤代碼為0x000000d1那么,當win10系統是藍屏并且提示錯誤代碼0x000000d1時,藍屏怎么辦...

  • flash基礎教程新手入門,最基礎的flash入門教程

    flash基礎教程新手入門,最基礎的flash入門教程 相關圖片flash的教程當我們做動畫時,如果我們按照時間順序安排演員的表演,我們只依賴于回放頭在時間線上的位置。具體的情況是停止、廣播、在某一幀停止、在某一幀廣播,或者相對地說,...

  • 瀏覽器字體模糊,打開瀏覽器字體模糊

    瀏覽器字體模糊,打開瀏覽器字體模糊 相關圖片瀏覽器字體有重影最近,很多朋友都報告說他們的win10電腦的edge瀏覽器字體看起來很模糊。win10系統中邊緣瀏覽器的模糊字體呢?接下來,超人軟件將為您介紹win10系統瀏覽網頁字體模糊...

  • 摩拜隱形貼紙,摩拜618貼紙

    摩拜隱形貼紙,摩拜618貼紙 相關圖片摩拜成立我相信所有的切手派對都期待著618的到來。作為年度推廣活動的開幕日,摩拜和京東聯合推出了618貼紙活動。接下來,超人軟件編輯就為大家介紹一下摩拜京東小金庫的活動摩...

  • 值得被記住的一天,一個值得記住的周末

    值得被記住的一天,一個值得記住的周末 相關圖片最值得記住的一句話本文主要介紹CSS中一些值得記憶的技巧。盡管本文中介紹的這些屬性在普通應用程序中并不常見,但它們非常有效。你可以參考盒子大小為朋友誰需要它。雖然CSS3中...

  • ios暗黑模式,ios暗黑模式怎么使用

    ios暗黑模式,ios暗黑模式怎么使用 相關圖片ios12.3暗黑模式怎么設置從2017年世界自然基金會會議開始已經有一段時間了。很多人最關心的是蘋果最新的系統IOS 11。其中,最受關注的是IOS 11的暗模式。那么IOS 11的黑暗模iphone暗黑模式...

  • 標簽的屬性有哪些,標簽的屬性

    標簽的屬性有哪些,標簽的屬性 相關圖片a標簽href屬性介紹了一種基于HTML5 video的視頻播放器。一開始我不知道,后來我可以寫一個基本上完美的自定義播放器。在這個過程中,我們對視頻標簽的屬性、方法和事件有了全a標簽常...

關注微信

变脸官网查询