有没有任何方便的解决方案来观看我写的巨大的javascript库文件的下载进度
<script src="/js/hugelib.js"></script>
代码?
很明显,$.ajax()
进度条没用。在headjs项目中,我可以找到设置进度设置,jsut ready()
。
答案 0 :(得分:1)
您可以使用XMLHttpRequest发出GET,导致它在浏览器中缓存,然后使用JavaScript将标记添加到文档中,使其立即加载。
var req = new XMLHttpRequest();
req.onprogress=myUpdateProgressFunction; // whatever you want to do!
req.open('GET', '/js/hugelib.js', true);
req.onreadystatechange = function (aEvt) {
if (req.readyState == 4)
{
var hugeScript = document.createElement('script');
hugeScript.setAttribute('src','/js/hugelib.js');
document.head.appendChild(hugeScript);
}
};
req.send();
您也可以考虑使用AJAX GET的结果设置hugeScript.text,但我相当肯定会表现不佳。
作为进一步的改进,您可以首先发出HEAD请求以查看该项是否已被缓存,如果是,请不要尝试AJAX GET。同样,您必须对性能进行分析,以确定性能是否实际上提高了性能。
注意:我没有测试过这种模式的行为,我真诚地认为浏览器缓存会以一种绅士的方式行事。
答案 1 :(得分:0)