繁体   English   中英

如何减少XMLHttpRequest的时间滞后?

[英]How to reduce XMLHttpRequest time lag?

我在注册表单上使用XMLHttpRequest来查看他们输入的用户名是否已被使用。 该脚本可以正常运行,但是我注意到发出请求时会有一些时间延迟-发送请求后,该网页被冻结了一秒钟。

有没有办法让请求“在后台”并且不会在前端造成任何滞后? 我喜欢Twitter的实现:它在搜索数据库时显示一个旋转的沙漏图标。 我如何得到类似的东西?

您要使用异步XHR-当前正在执行同步请求,因此页面必须冻结,直到加载完成。 异步XHR调用随负载状态更新一起提供的callbck函数。

如果有记忆,您只需要做

 xhr.onreadystatechange = function() { 
     if (xhr.readyState === 4 && xhr.status === 200) loadFinished();
 }
 xhr.open(requestType, url,  true);

如果为true使请求异步。

您需要指定XMLHttpRequest在后台异步运行。 然后,您可以提供回调函数,以便用户可以继续浏览直到操作完成。

许多站点在等待操作返回时仅显示动画GIF,这可能会给用户留下您正在寻找的印象,因为它看起来正在发生某些事情。 您可以从http://www.ajaxload.info/轻松设计和下载这些AJAX旋转指示器之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM