天天看點

頁面實時重新整理技術探讨

????? ??杩?锛????稿??涓?涓?浜ら??杞?浠朵駭??锛???瑕?瀹??伴〉?㈠???跺?鋒?幫?baidu浜?涓?灏?璧???锛?浣?娌℃????姝hВ?沖???跺?鋒?伴〉?㈤??棰?????浠??界?ラ??锛?璁塊??缃?椤墊???轟?HTTP??璁?锛??寵???杩?request/response???瑰?璁塊?????″???濡???瀹㈡?風??涓??諱富?ㄨ?鋒?锛????″?ㄧ????涓?浼?涓誨?ㄧ?瀹㈡?風??杩???瀹㈡?風????????淇℃????锛??轟?姝わ?B/S姘歌?涓????藉???扮??姝g?????″?ㄧ??"PUSH"妯″???

????? 浣?浠ヤ?骞朵?绛?浜?璇存??浠???娉?瀹??惰?峰???版???$????瀹??朵俊??锛?浠ヤ???浠?缃?涓???绱㈢??涓?浜?瀹??版?瑰?锛??葷?浜?涓?涓?锛?

瀹㈡?風????PULL??妯″?

?

椤甸?㈠???跺?鋒??

??涓?娈墊?堕?達??鋒?頒?娆¢〉??????版?ヨ?㈡?版??搴????瑰???澶уぇ澧???浜????″?ㄧ??璐?杞姐??

瑙?瀵???妯″?

瀹㈡?風???ㄥ??锛????劇ず瀹??舵?版?????ㄥ?????????鋒?扮??锛???杩?杞?璇㈡???$?????存?闆????锛?浣???涓????ユ?版??搴?锛?????璁塊?????″?ㄧ????蹇?锛?璇ユ??蹇??ㄦ?ユ??蹇???杩??版???????存?般??濡?????蹇??劇ず?版??琚??存?幫????ヨ?㈡?版??搴?骞惰?????

?

???″?ㄢ??PUSH??妯″?

?

ActiveX?т歡

??绀虹?ㄦ?蜂?杞藉??瑁?,杩?瑕???寰?杞??寵?瘋?稿??璇?,????褰??ㄦ?鋒??寮?缃?椤墊?舵?劇ず??????瑁?ActiveX??灏?浼??劇ず璇ユ?т歡娌℃??缁?杩?瀹??ㄨ?よ??,???戒??卞?充???璁$???虹????绀轟俊????

Ajax push缁?浠?

???ㄥ?姝ラ??淇℃?瑰?锛?XmlHttpRequest??渚???寮?姝ヨ?鋒??瑰?瀵逛?璇鋒?搴?绛??跺父娌℃??浠?涔??瑰???????訛?绗?????浠?涓????″?ㄥ緩绔??挎??杩??ョ????姹???

???″?ㄧ??浼??誨?璇鋒??村?版???版??浼?????瓒??舵??杩?????

瀹㈡?風?? JavaScript ??搴?澶????芥?頒??ㄥ???瀹????″?ㄨ?????淇℃????锛???娆″???鴻?鋒?锛????闆緩绔?杩??ャ??

褰?瀹㈡?風??澶????ユ?剁???版???????闆緩绔?杩??ユ?訛????″?ㄧ?????芥???扮???版???拌揪锛?杩?浜?淇℃??浼?琚????″?ㄧ??淇?瀛??村?闆?㈡?風?????闆緩绔?杩??ワ?瀹㈡?風??浼?涓?娆℃??褰??????″?ㄧ????????淇℃????????

Flash XMLSocket

??HTML 椤甸??腑??宓??ヤ?涓?浣跨?ㄤ? XMLSocket 绫葷?? Flash 绋?搴???JavaScript ??杩?璋??ㄦ??Flash 绋?搴???渚???濂??ュ?f?ュ?d????″?ㄧ????濂??ュ?h?琛???淇°??JavaScript ?ㄦ?跺?闆か?″?ㄧ??浠?XML ?煎?浼?????淇℃??????浠ュ?瀹規???版?у??HTML 椤甸?㈢????瀹規?劇ず??

缂虹?癸?

瀹㈡?風??蹇?椤誨??瑁? Flash ???懼???

??涓?XMLSocket 娌℃?? HTTP ?ч?????斤?XMLSocket 绫諱??借???ㄧ┛杩??茬??澧?锛?

??涓烘??浣跨?ㄥ??ュ?o???瑕?璁劇疆涓?涓???淇$???o??茬??澧???浠g?????″?ㄤ????藉?歸?? HTTP ????绔??h?琛????訛?

缃?缁???澶╁?わ?缃?缁?浜??ㄦ父??涓?宸插??闆箍娉?浣跨??

Java Applet 濂??ュ??

?ㄥ?㈡?風??浣跨??Java Applet锛???杩? java.net.Socket ?? java.net.DatagramSocket ?? java.net.MulticastSocket 寤虹??涓????″?ㄧ????濂??ュ?h??ワ?浠???瀹??扳?????″?ㄦ?ㄢ????

杩?绉??規???澶х??涓?瓒沖?ㄤ? Java applet ?ㄦ?跺?版???″?ㄧ??杩?????淇℃????锛???娉???杩? JavaScript ?繪?存??HTML 椤甸?㈢????瀹廣??

?

?

浠ヤ?瀹??版?瑰?锛????烘??涓??戒?浜?涓?涓?Demo锛?缁煎??姣?杈?????锛?浣跨??mlHTTP???瑰?瀹??拌搗?ユ??杈??逛究???蜂?瀹??頒唬??濡?涓?锛?

???″?ㄧ??锛?

protected void Page_Load(object sender, EventArgs e)

??? {

??????? if (!IsPostBack)

??????? {

??????????? XmlDocument xmlDoc = new XmlDocument();

??????????? xmlDoc.Load(HttpContext.Current.Server.MapPath("newPic.xml"));

??????????? XmlNodeList nodeList = xmlDoc.SelectSingleNode("Items").ChildNodes;

??????????? XmlElement element = (XmlElement)nodeList[0];

??????????? string picPath = "Pic/" + element.GetAttribute("code") + ".jpg";

??????????? Label1.Text = element.GetAttribute("code");

??????????? imgCtrl.ImageUrl = picPath;

??????????? //imgCtrl.ImageUrl = "server.aspx";

??????? }

??? }

瀹㈡?風??浠g??锛?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="client.aspx.cs" Inherits="client" %>

<!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></title>

??? <meta http-equiv="Content-Type" content="text/html; Charset=gb2312" />

??? <script type="text/javascript">

??????? var xmlHttp;

??????? function CreateXMLHttp()

??????? {

??????????? if(window.XMLHttpRequest)

??????????? {

??????????????? xmlHttp = new XMLHttpRequest();

??????????? }

??????????? else if (window.ActiveXObject)

??????????? {

??????????????? try

??????????????? {

??????????????????? xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

??????????????? }

??????????????? catch(e)

??????????????? {

??????????????????? try

??????????????????? {

??????????????????????? xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

??????????????????? }

??????????????????? catch(e) { }

??????????????? }

??????????? }

??????????? xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.5.0");

??????? }

??????? function startXMLHttp()

??????? {

??????????? CreateXMLHttp();

??????????? xmlHttp.onreadystatechange =dodo;

??????????? xmlHttp.open("post","server.aspx",true);

??????????? xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded charset=gb2312");

??????????? xmlHttp.send();

??????? }???????

?????

???????? function dodo()

???????? {

?????????? if(xmlHttp.readystate==4)

?????????? {

???????????? if(xmlHttp.status==200)

???????????? {

?????????????? var retValue = xmlHttp.responseText;

?????????????? var new1 = retValue.split("Pic/")[1].substring(0,18);

??????????????

?????????????? var nowValue = document.getElementById("Content").innerHTML;

?????????????? if(nowValue.split("Pic/")[1] == null)

?????????????? document.getElementById("Content").innerHTML=xmlHttp.responseText;

?????????????? else

?????????????? {

???????????????? var new2 = nowValue.split("Pic/")[1].substring(0,18);???????????????

???????????????? if(new1!=new2)

???????????????? { document.getElementById("Content").innerHTML=xmlHttp.responseText; }

?????????????? }

//?????????????? document.getElementById("Content").innerHTML=xmlHttp.responseText;

???????????? }

???????????? setTimeout(startXMLHttp,1000);

????????? }

??????? }

??? </script>

</head>

<body 慰nl慰ad='Javascript:startXMLHttp()'>

??? <div></div>

??? <span id="Content">No Pic</span>

</body>

</html>

浠g??姣?杈?绠???锛??鎬俊澶у?跺?烘???芥????

繼續閱讀