发布网友 发布时间:2022-05-15 01:22
共2个回答
懂视网 时间:2022-05-15 05:43
如何做到异步和局部刷新?下面小编就为大家带来一篇AJAX的原理—如何做到异步和局部刷新。现在分享给大家,也给大家做个参考。Overriew: onReadyStateChange被回调函数赋值,则能实现异步调用,回调函数直接操作DOM,则能实现局部刷新。那么XMLHttpRequest的onReadyStateChange如何知道服务ready了呢?状态如何change了呢(观察者模式)?则是通过客户端对服务的状态询问(定期轮询)所实现的。
详解:
1. XMLHttpRequest 负责与服务器端的通讯,其内部有很多重要的属性:readyStatus=4,status=200等等。当XMLHttpRequest的整体状态并且保证它已经完成(readyStatus=4),即数据已经发送完毕。然后根据服务器的设定询问(类似于客户端会轮询服务器的返回状态,仍然是http短连接,并非长连接的服务器端push)请求状态,如果一切已经就绪(status=200),那么就执行需要的操作。
操作一般就是直接操作DOM,所以AJAX能做到所谓的“无刷新”用户体验。
2. 那么在AJAX客户端如何做到的异步呢?实际上就是Javascript的回调函数起的作用
提供一个回调JavaScript函数,一旦服务器响应可用,该函数就被执行
业务函数:
第一行定义了JavaScript回调函数,一旦响应就绪它就自动执行,而req.open()方法中所指定的“true”标志说明想要异步执行该请求。
一旦服务器处理完XmlHttpRequest并返回给浏览器,使用req.onreadystatechange指派所设置的回调方法将被自动调用。
回调函数:
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
深入浅析Nginx实现AJAX跨域请求问题
AjaxToolKit之Rating控件的使用方法
基于Ajax技术实现文件上传带进度条
热心网友 时间:2022-05-15 02:51
大体有两种方法: