变相怪杰 发表于 2015-1-16 22:49:57

ASP.NET网页设计一个无革新效果准时主动更新页面的例子...

听03很多师兄说主讲老师杭城方讲课很差就连旁听也没有去了)准时|革新|无革新|页面  一个无革新效果准时主动更新页面的例子(ASP.NET2.0-使用xmlhttp)
  起首在ASP.Net创立两个WebForm页,分离定名为Default1,Default2。上面给出代码清单:
//Default1.aspx
<%@PageLanguage="C#"Debug="true"AutoEventWireup="true"CodeFile="Default1.aspx.cs"Inherits="Default1"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlXmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<title>无题目页</title>
<scripttype="text/javascript">
varXmlHttp;
functioncreateXmlHttpRequest()
{
if(window.XmlHttpRequest)
{
XmlHttp=newXmlHttpRequest();
}
elseif(window.ActiveXObject)
{
try
{
XmlHttp=newActiveXObject("MsXml2.XmlHTTP");
}
catch(e1)
{
try
{
XmlHttp=newActiveXObject("Microsoft.XmlHTTP");
}
catch(e2)
{}
}
}
returnXmlHttp;
}
functiondoStart(){
createXmlHttpRequest();
varurl="Default2.aspx?task=reset";
XmlHttp.open("POST",url,true);
XmlHttp.onreadystatechange=startCallback;
XmlHttp.send(null);
}
functionstartCallback(){
if(XmlHttp.readyState==4){
if(XmlHttp.status==200){
setTimeout("pollServer()",1000);
refreshTime();
}
else{
alert("HTTPerror:"+XmlHttp.status);
}
}
}
functionpollServer(){
createXmlHttpRequest();
varurl="Default2.aspx?task=foo";
XmlHttp.open("POST",url,true);
XmlHttp.onreadystatechange=pollCallback;
XmlHttp.send(null);
}
functionrefreshTime(){
vartime_span=document.getElementById("time");
vartime_val=time_span.innerHTML;
varint_val=parseInt(time_val);
varnew_int_val=int_val-1;
if(new_int_val>-1){
setTimeout("refreshTime()",1000);
time_span.innerHTML=new_int_val;
}else{
time_span.innerHTML=1;
}
}
functionpollCallback(){
if(XmlHttp.readyState==4){
if(XmlHttp.status==200){
varmessage=XmlHttp.responseXml.getElementsByTagName("message").firstChild.data;
if(message!="done"){
varnew_row=createRow(message);
vartable=document.getElementById("dynamicUpdateArea");
vartable_body=table.getElementsByTagName("tbody").item(0);
varfirst_row=table_body.getElementsByTagName("tr").item(1);
table_body.insertBefore(new_row,first_row);
setTimeout("pollServer()",1000);
refreshTime();
}
}
else{
alert("HTTPerror:"+XmlHttp.status);
}
}
}
functioncreateRow(message){
varrow=document.createElement("tr");
varcell=document.createElement("td");
varcell_data=document.createTextNode(message);
cell.appendChild(cell_data);
row.appendChild(cell);
returnrow;
}
</script>
</head>
<body>
<formid="form1"runat="server">
<h1>AjaxDynamicUpdateExample</h1>
Thispagewillautomaticallyupdateitself:
<inputtype="button"value="Launch"id="go"/>
<p/>
Pagewillrefreshin<spanid="time">1</span>seconds.
<p/>
<tableid="dynamicUpdateArea"align="left">
<tbody>
<trid="row0"><td></td></tr>
</tbody>
</table>
</form>
</body>
</html>
//Default2.cs
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
publicpartialclassDefault2:System.Web.UI.Page
{
privatestaticintcounter=1;
protectedvoidPage_Load(objectsender,EventArgse)
{
Stringres="";
Stringtask=this.Request.Params["task"];
Stringmessage="";
if(!string.IsNullOrEmpty(task))
{
if(task.Equals("reset"))
{
counter=1;
}
else
{
switch(counter)
{
case1:message="Stevewalksonstage";break;
case2:message="iPodsrock";break;
case3:message="StevesaysMacsrule";break;
case4:message="Changeiscoming";break;
case5:message="Yes,OSXrunsonIntel-hasforyears";break;
case6:message="MacswillsoonhaveIntelchips";break;
case7:message="done";break;
}
counter++;
}
res="<message>"+message+"</message>";
Response.ContentType="text/Xml";
Response.AppendHeader("Cache-Control","no-cache");
Response.Write("<response>");
Response.Write(res);
Response.Write("</response>");
Response.End();
}
}
}
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。

精灵巫婆 发表于 2015-1-20 05:15:44

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

简单生活 发表于 2015-1-28 08:24:19

ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。

透明 发表于 2015-2-5 14:07:05

通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。

老尸 发表于 2015-2-12 03:03:05

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

因胸联盟 发表于 2015-3-2 21:20:41

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

只想知道 发表于 2015-3-11 06:22:12

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

愤怒的大鸟 发表于 2015-3-17 22:16:24

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

飘灵儿 发表于 2015-3-25 04:14:09

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
页: [1]
查看完整版本: ASP.NET网页设计一个无革新效果准时主动更新页面的例子...