限制某个ajax请求的宽带上限
希望在页面加载完全以后进行ajax请求一些文件,以达到预加载目的,但是又不希望一堆ajax的请求,把服务器带宽堆满。
目前的情况:使用如图方式,其一会导致页面一直显示转圆圈,让用户认为没有加载完。其二,因为是异步所以导致大量的ajax预加载请求让服务器带宽堆满。(又肯定不能是同步,不然页面直接卡死了)
期待效果:加载过程不会影响页面加载,为静默加载,且速度减慢,以减少影响其他请求。(且限制速度不影响其他ajax异步请求,仅限制预加载的ajax)
限制不了ajax请求带宽。如果同时请求占用服务器带宽太多,可以将要预加载的js文件放数组里面,一个一个来请求。就是请求完毕一个之后再请求下一个,直到数组用的js文件都请求完。不过要是这个页面停留时间不够,可能数组中所有文件不一定全部缓存得完。
而且缓存居于jquery,代码里面没必要在请求jquery框架。示例如下
<script src="https://g.csdnimg.cn/??lib/jquery/1.12.4/jquery.min.js"></script>
<script>
var cacheFiles = ['js/jquery.form.js', 'layui/layui.js', 'js/popper.min.js', 'js/bootstrap.js'/*更多要缓存的文件*/]
var curIndex = 0;
function sendAjax() {
if (curIndex < cacheFiles.length) {
$.ajax({
url: cacheFiles[curIndex], cache: true, complete: function () {
curIndex++;
sendAjax();
}
})
}
}
sendAjax();
</script>
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!