在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、Ajax是什么 复制代码 代码如下: // Mozilla, Safari,Opera 8.0+... function ajaxFunction(){ var http_request; if (window.XMLHttpRequest) { http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { alert("您的浏览器不支持Ajax"); return false; } } http_request.onreadystatechange = alertContents; http_request.open('GET', url, true); http_request.send(null); } function alertContents() { if (http_request.readyState == 4) { if (http_request.status == 200) { alert(http_request.responseText); } else { alert('There was a problem with the request.'); } } } 解释:首先创建一个XMLHttpRequest对象http_request,如果支持window.XMLHttpRequest,则用new XMLHttpRequest() 来创建此对象。这条语句针对 Firefox、Opera 以及 Safari 浏览器,如果不支持,则尝试针对Internet Explorer 6.0+ 的Msxml2.XMLHTTP组件创建XMLHttpRequest,如果也不支持,则尝试针对 Internet Explorer 5.5+ 的Microsoft.XMLHTTP组件,如果仍然不支持,则说明用户的浏览器版本太低了,提示用户“您的浏览器不支持AJAX”。 XMLHttpRequest对象的onreadystatechange方法用于,状态改变时要执行的方法,用来处理这个响应。 readyState的状态是: 0 请求未初始化(open() 之前) 1 请求已提出,正在装载 (调用 send() 之前) 2 装载完毕,请求已发送(这里通常可以从响应得到内容头部) 3 交互中,请求处理中(响应中通常有部分数据可用,但是服务器还没有完成响应) 4 请求已完成(可以访问服务器响应并使用它) 所以当readyState等于4时,就表示一个完整的服务器响应已经收到了,接着,函数会检查HTTP服务器响应的状态值。当HTTP服务器响应的值为200时,表示状态正常。这时候才真正执行客户端要执行的操作。 读取从服务器返回过来的数据,有两种方式: 1、http_request.responseText:以文本字符串的方式返回服务器的响应 2、http_request.responseXML:以XMLDocument对象方式返回响应 五、Ajax缺陷与不足 1、可能破坏浏览器后退按钮的正常行为; 2、使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中; 3、Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰——用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等; 4、一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax。 六、Ajax工具 1、jQuery 开源JS框架,写得更少,做得更多; |
请发表评论