pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

  • <i id='23pBx'><tr id='23pBx'><dt id='23pBx'><q id='23pBx'><span id='23pBx'><b id='23pBx'><form id='23pBx'><ins id='23pBx'></ins><ul id='23pBx'></ul><sub id='23pBx'></sub></form><legend id='23pBx'></legend><bdo id='23pBx'><pre id='23pBx'><center id='23pBx'></center></pre></bdo></b><th id='23pBx'></th></span></q></dt></tr></i><div class="ge8u3ir" id='23pBx'><tfoot id='23pBx'></tfoot><dl id='23pBx'><fieldset id='23pBx'></fieldset></dl></div>

    <small id='23pBx'></small><noframes id='23pBx'>

      • <bdo id='23pBx'></bdo><ul id='23pBx'></ul>

      <legend id='23pBx'><style id='23pBx'><dir id='23pBx'><q id='23pBx'></q></dir></style></legend><tfoot id='23pBx'></tfoot>

        在 AJAX 中處理增量服務(wù)器響應(yīng)(在 JavaScript 中)

        Dealing with incremental server response in AJAX (in JavaScript)(在 AJAX 中處理增量服務(wù)器響應(yīng)(在 JavaScript 中))

        1. <legend id='yCJpo'><style id='yCJpo'><dir id='yCJpo'><q id='yCJpo'></q></dir></style></legend>
            <i id='yCJpo'><tr id='yCJpo'><dt id='yCJpo'><q id='yCJpo'><span id='yCJpo'><b id='yCJpo'><form id='yCJpo'><ins id='yCJpo'></ins><ul id='yCJpo'></ul><sub id='yCJpo'></sub></form><legend id='yCJpo'></legend><bdo id='yCJpo'><pre id='yCJpo'><center id='yCJpo'></center></pre></bdo></b><th id='yCJpo'></th></span></q></dt></tr></i><div class="vrbw3i8" id='yCJpo'><tfoot id='yCJpo'></tfoot><dl id='yCJpo'><fieldset id='yCJpo'></fieldset></dl></div>

              <bdo id='yCJpo'></bdo><ul id='yCJpo'></ul>

                <tbody id='yCJpo'></tbody>

              • <small id='yCJpo'></small><noframes id='yCJpo'>

                  <tfoot id='yCJpo'></tfoot>
                  本文介紹了在 AJAX 中處理增量服務(wù)器響應(yīng)(在 JavaScript 中)的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  我有基于服務(wù)器響應(yīng)更新頁面的 AJAX 應(yīng)用程序.AJAX服務(wù)器響應(yīng)所基于的命令需要很長時(shí)間才能生成完整的響應(yīng),但是一旦計(jì)算出來它就會(huì)發(fā)送部分信息.此部分響應(yīng)/部分信息以突發(fā)"形式發(fā)送,并且每個(gè)突發(fā)的時(shí)間和大小是不可預(yù)測(cè)的.將命令輸出流式傳輸?shù)?Web 瀏覽器(到 AJAX 請(qǐng)求)的 CGI 腳本(在 Perl 中)已打開自動(dòng)刷新.

                  I have AJAX app which updates page based on server response. The command that AJAX server response is based on takes long time to generate full response, but it sends partial information as soon as it is calculated. This partial response / partial info is send in "burst", and time and size of each burst is unpredictable. CGI script (in Perl) that streams command output to web browser (to AJAX request) has autoflush turned on.

                  服務(wù)器響應(yīng)基于外部命令的輸出.'time cmd >/dev/null' 平均給出大約 10.0 秒,'time cmd | head >/dev/null' 給出不到 0.1 秒(例如數(shù)據(jù)).所有數(shù)據(jù)都是單次調(diào)用此外部命令的結(jié)果.

                  The server response is based on output of external command. While 'time cmd > /dev/null" gives around 10.0 seconds on average, 'time cmd | head > /dev/null' gives less than 0.1 seconds (for example data). All data is result of single call to this external command.

                  情況如下(ASCII-藝術(shù)圖如下):

                   client |     | server
                  ---------     ---------
                  
                  request -
                            
                             
                              
                               ->
                  
                               /- response
                              /      .
                             /       .
                            /  /-    .
                         <-/  /      . 
                             /       .
                            /  /-  [end]
                         <-/  /
                             /
                            /
                         <-/
                  

                  我有幾個(gè)關(guān)于這個(gè)問題的問題.

                  I have a few questions about this problem.

                  注意:服務(wù)器端在 Perl 中作為 CGI 腳本完成,我更希望看到(也)解決方案,而不使用像 jQuery 這樣的 JavaScript 庫/框架.

                  Note: server side is done as CGI script in Perl, and I would prefer to see (also) solution without using JavaScript library / framework like jQuery.

                  • AJAX 應(yīng)用服務(wù)器端使用的命令輸出是基于行的.每組線,以一種定義的線開始,以另一種線結(jié)束,由獨(dú)立且不可更改的數(shù)據(jù)組成.我應(yīng)該只是將來自命令的響應(yīng)流式傳輸為text/plain"并在客戶端用 JavaScript 進(jìn)行處理,還是應(yīng)該在服務(wù)器上預(yù)處理數(shù)據(jù),并使用application/json"mimetype 將整個(gè)數(shù)據(jù)塊作為 JSON 發(fā)送?

                  • The output of command used by server side of AJAX app is line based. Each group of lines, beginning with one defined kind of line, and ending with other kind of line, consist of independend and unchangeable data. Should I just stream response from a command as 'text/plain' and do processing in JavaScript on client side, or should I pre-process data on server, and send whole chunks of data as JSON using 'application/json' mimetype?

                  可能會(huì)發(fā)生服務(wù)器一次發(fā)送的大量數(shù)據(jù)之后很快就會(huì)有另一塊數(shù)據(jù)的情況.如何處理 onreadystatechange 處理程序被調(diào)用而先前的調(diào)用沒有完成工作的情況?我應(yīng)該使用全局變量作為信號(hào)量,還是將狀態(tài)變量作為處理程序參數(shù)傳遞(好吧,使用 xhr.onreadystatechange = function() { handleRequest(xhr, state) })?

                  It might happen that large chunk of data send at once by server is followed soon by another chunk of data. How to deal with situation when onreadystatechange handler is invoked while previous invocation didn't finished work? Should I use global variable as semaphore, or pass state variable as handler parameter (well, use xhr.onreadystatechange = function() { handleRequest(xhr, state) })?

                  我應(yīng)該使用text/plain"還是application/json",或者可能是multipart/x0mixed-replace"?注意:這個(gè)應(yīng)用程序應(yīng)該可以在(幾乎)任何瀏覽器中運(yùn)行.

                  Should I use 'text/plain' or 'application/json', or perhaps 'multipart/x0mixed-replace' for this? Note: this app should work in (alomst) any browser.

                  如何處理僅在收到完整響應(yīng)后才調(diào)用 onReadyStateChange 的網(wǎng)絡(luò)瀏覽器(JavaScript 引擎)(所以我看不到 xhr.readyState == 3 即部分響應(yīng)不止一次)?好吧,除了使用一些 JavaScript 框架.

                  How to deal with web browser (JavaScript engines) which invoke onReadyStateChange only after receiving complete response (so I don't see xhr.readyState == 3 i.e. partial response more than once)? Well, beside using some JavaScript framework.

                  如何處理不完整的響應(yīng)(在這種情況下意味著不完整的行).

                  How to deal with incomplete responses (which in this situation mean incomplete lines).

                  我應(yīng)該發(fā)送響應(yīng)結(jié)束標(biāo)記,還是依靠計(jì)數(shù)器來檢查我們是否收到了所有數(shù)據(jù),或者我可以簡單地依靠檢測(cè) xhr.readyState == 4?

                  Should I send end of response marker, or rely on counter to check if we received all data, or can I simply rely on detecting xhr.readyState == 4?

                  即使是部分回應(yīng)也會(huì)有所幫助.

                  Even partial response would be helpful.

                  推薦答案

                  我認(rèn)為 Comet 是您的解決方案所需的一部分.您還可以(如果我沒記錯(cuò)的話)簽出 Bayeux Protocol,它是由 Dojo 基金會(huì)實(shí)施.整個(gè)事情還是很新的(盡管其中一些可能在第一個(gè) HTML5 實(shí)現(xiàn)中是可能的).

                  I think Comet is part of what you need for your solution. You can additionally (if I got that right) checkout the Bayeux Protocol which was implemented by the Dojo Foundation. The whole thing is still very new (though some of it might be possible with the first HTML5 implementations).

                  除此之外,您可能還必須實(shí)施輪詢方法.另一個(gè)問題是,客戶端 JavaScript 解釋器可以處理多少數(shù)據(jù).您是否有可能以某種方式分頁"您的數(shù)據(jù),這樣您就不會(huì)遇到請(qǐng)求處理仍在處理而另一個(gè)響應(yīng)已經(jīng)到來的問題?

                  Besides that you would probably have to implement the polling approach. The other question is, how much data the client side JavaScript interpreter can handle. Is there any possibility for you to somehow "page" your data so that you won't have the problem of request handling still processing while aother response comes in already?

                  這篇關(guān)于在 AJAX 中處理增量服務(wù)器響應(yīng)(在 JavaScript 中)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  Browser waits for ajax call to complete even after abort has been called (jQuery)(即使在調(diào)用 abort (jQuery) 之后,瀏覽器也會(huì)等待 ajax 調(diào)用完成)
                  JavaScript innerHTML is not working for IE?(JavaScript innerHTML 不適用于 IE?)
                  XMLHttpRequest cannot load, No #39;Access-Control-Allow-Origin#39; header is present on the requested resource(XMLHttpRequest 無法加載,請(qǐng)求的資源上不存在“Access-Control-Allow-Origin標(biāo)頭) - IT屋-程序員軟件開發(fā)技術(shù)分
                  Is it possible for XHR HEAD requests to not follow redirects (301 302)(XHR HEAD 請(qǐng)求是否有可能不遵循重定向 (301 302))
                  NETWORK_ERROR: XMLHttpRequest Exception 101(NETWORK_ERROR:XMLHttpRequest 異常 101)
                  XMLHttpRequest 206 Partial Content(XMLHttpRequest 206 部分內(nèi)容)
                    <legend id='HyypE'><style id='HyypE'><dir id='HyypE'><q id='HyypE'></q></dir></style></legend>

                      <bdo id='HyypE'></bdo><ul id='HyypE'></ul>

                            <tbody id='HyypE'></tbody>

                          <small id='HyypE'></small><noframes id='HyypE'>

                            <tfoot id='HyypE'></tfoot>
                          • <i id='HyypE'><tr id='HyypE'><dt id='HyypE'><q id='HyypE'><span id='HyypE'><b id='HyypE'><form id='HyypE'><ins id='HyypE'></ins><ul id='HyypE'></ul><sub id='HyypE'></sub></form><legend id='HyypE'></legend><bdo id='HyypE'><pre id='HyypE'><center id='HyypE'></center></pre></bdo></b><th id='HyypE'></th></span></q></dt></tr></i><div class="aq8zrsf" id='HyypE'><tfoot id='HyypE'></tfoot><dl id='HyypE'><fieldset id='HyypE'></fieldset></dl></div>

                          • 主站蜘蛛池模板: 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 气动隔膜阀_气动隔膜阀厂家_卫生级隔膜阀价格_浙江浙控阀门有限公司 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 渣土车电机,太阳能跟踪器电机,蜗轮蜗杆减速电机厂家-淄博传强电机 | 实验室隔膜泵-无油防腐蚀隔膜泵-耐腐蚀隔膜真空泵-杭州景程仪器 电杆荷载挠度测试仪-电杆荷载位移-管桩测试仪-北京绿野创能机电设备有限公司 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 彩信群发_群发彩信软件_视频短信营销平台-达信通 | 威廉希尔WilliamHill·足球(中国)体育官方网站 | 超细粉碎机|超微气流磨|气流分级机|粉体改性设备|超微粉碎设备-山东埃尔派粉碎机厂家 | 连续密炼机_双转子连续密炼机_连续式密炼机-南京永睿机械制造有限公司 | 起好名字_取个好名字_好名网免费取好名在线打分 | 微动开关厂家-东莞市德沃电子科技有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 一体化污水处理设备-一体化净水设备-「山东梦之洁水处理」 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 篷房|仓储篷房|铝合金篷房|体育篷房|篷房厂家-华烨建筑科技官网 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 超声波焊接机_超音波熔接机_超声波塑焊机十大品牌_塑料超声波焊接设备厂家 | 定制液氮罐_小型气相液氮罐_自增压液氮罐_班德液氮罐厂家 | 盘装氧量分析仪-防爆壁挂氧化锆分析仪-安徽吉帆仪表有限公司 | 耐破强度测试仪-纸箱破裂强度试验机-济南三泉中石单品站 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 直线模组_滚珠丝杆滑台_模组滑台厂家_万里疆科技 | 烟雾净化器-滤筒除尘器-防爆除尘器-除尘器厂家-东莞执信环保科技有限公司 | 亚洲工业智能制造领域专业门户网站 - 亚洲自动化与机器人网 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 |