栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

可以计算使用AJAX加载了多少数据?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

可以计算使用AJAX加载了多少数据?


可能的。XHRs有一个

progress
事件。唯一的问题是访问XHR对象-
不幸的是
beforeSend
仅接收该
jqXHR
对象,而不接收基础XHR对象。也不能作为包装器的属性来访问它。但是,您可以通过将以下选项添加到XHR对象来创建XHR对象
$.ajax()


xhr: function () {    var xhr = $.ajaxSettings.xhr(); // call the original function    xhr.addEventListener('progress', function (e) {        if (e.lengthComputable) { var percentComplete = e.loaded / e.total; // Do something with download progress        }    }, false);    return xhr;}

这是我最初的解决方案。与jQuery结合起来非常困难,因为您不能轻易地挂接到onreadystatechange处理程序,并且在设置之后无法安全地替换它:

您需要添加一个自定义

onreadystatechange
处理程序。当
readyState
XHR对象的变为
2

HEADERS_RECEIVED
)时,您可以访问
Content-Length
标头以获取总大小,然后使用
xhr.readyState == 3

LOADING )等待事件触发。

然后,您可以通过查看来计算进度

xhr.responseText.length

但是,这只会触发一次。因此,您需要启动一个计时器(使用
setInterval()
),该计时器将检查就绪状态和响应大小,例如每100毫秒。请求完成后,您可以使用再次停止间隔
clearInterval()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430750.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号