ajax实现WEB页面上多任务同时作业
今天需要写一个功能,对于数据库中的数据,在用户通过WEB显示出来的时候,自动启动服务器端脚本对每个数据的有效性进行检测,并将结果呈现给用户。
我考虑的就是,呈现每条数据的时候,启动一个ajax通信进程,将结果反馈回来就OK了。
细节方面需要考虑的是,每个进程完成任务后在回调的时候如何知道它的“宿主”数据是哪一个(哪条数据发起的任务)。
还有由于XMLHttpRequest对于每个任务都是私有的,我们需要多任务并发,所以这里我使用一个类封装整个任务。每次启动一个类对象,将其作为类的私有成员。
下面看看我们的客户端脚本模型
//检测URL的ajax进程类
function TaskAjaxProcess()
{
//类成员XMLHttpRequest
var http_request_check_url = false;
//启动任务
this.start_task = function( $obj )
{
var checkurl = $obj.alt;
////////////创建http request//////////////////
http_request_check_url=false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)//Mozilla浏览器
{
http_request_check_url=new XMLHttpRequest();
if(http_request_check_url.overrideMimeType)
{//设置MIME类别
http_request_check_url.overrideMimeType("text/xml");
}
}
else if(window.ActiveXObject)//IE浏览器
{
try
{
http_request_check_url=new ActiveXObject("Msxml2.XMLHttp");
}
catch(e)
{
try
{
http_request_check_url=new ActiveXobject("Microsoft.XMLHttp");
}
catch(e){}
}
}
//异常,创建对象实例失败
if(!http_request_check_url)
{
document.getElementById("searchresult").innerHTML="<font color=red>Fault error:创建XMLHttp对象失败!</font>";
return false;
}
//在URL添加随机数防止浏览器cache页面
//将发起者(任务宿主)ID也传进PHP脚本
var post_url= "checkURL.php?url=" + checkurl + "&id=" + $obj.id + "&random=" + Math.random()*(10000);
http_request_check_url.onreadystatechange=this.showCheckURLResult;//注册完成的回调函数
http_request_check_url.open("GET",post_url,true);
http_request_check_url.send(null);
}
//完成的回调函数
this.showCheckURLResult = functio
相关文档:
ajax就是javascript 因为以前javascript没有httpXMLrequest对象,从IE5.0之后出现,说白了ajax就是可以用javascript向服务器发送请求,并且能接收服务返回的内容,写ajax程序只要写出一个发送函数和一个接收服务员返回的函数即可,在服务器程序中可以返回字符串也可以返回xml,实例程序http://xsuo.javaeye.com/blog/578637 ......
在Visual Studio中,所有的ASP.NET 2.0控件都是自定义控件,创建自己的自定义控件一般需要完成以下三步。
(1)在站点APP_Code下创建一个新类;
(2)修改这个类,让它成为WebControl类(包含在System.Web.UI.WebControls命名空间)的派生类;
(3)重写基类(即WebControl类)的RenderContents()方法。
下面是一个最简单的ASP.NE ......
使用AJAX中的UpdatePanel
在UpdatePanel中添加一GridView,添加了Row_Updating事件: protected void gvUnitList_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = gvUnitList.Rows[e.RowIndex];
UnitModel unit = new UnitModel();
unit.UnitID = Convert.ToI ......
这是最常用的地址选择下拉框,包括三个下拉框,对应三个XML文件:
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<Provinces>
<Province ID="1" ProvinceName="北京市">北京市</Province>
<Province ID= ......