本文实例讲述了异步安全加载javascript文件的方法。分享给大家供大家参考。具体如下:
使用方法:
(function() { __safeLoadScript("http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js", function() { alert(jQuery); }); })();
JavaScript实现代码:
window.__safeLoadScript = function(src, callback) { function addEvent(obj, type, fn) { if (obj.attachEvent) { obj['e' + type + fn] = fn; obj[type + fn] = function() { obj['e' + type + fn](window.event); } obj.attachEvent('on' + type, obj[type + fn]); } else obj.addEventListener(type, fn, false); } function async_load(src, callback) { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; var protocol = (("https:" == document.location.protocol) ? "https://" : "http://"); s.src = protocol + src; var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); s.onload = s.onreadystatechange = function() { if(callback && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) { callback(); } }; } addEvent(window, "load", function() { async_load(src, callback); }); };
希望本文所述对大家的javascript程序设计有所帮助。
本文向大家介绍JavaScript异步加载方案相关面试题,主要包含被问及JavaScript异步加载方案时的应答技巧和注意事项,需要的朋友参考一下
问题内容: 我正在尝试编写一个超简单的解决方案以异步加载一堆JS文件。到目前为止,我下面有以下脚本。但是,当未实际加载脚本时,有时会调用回调,这会导致未找到变量错误。如果我刷新页面有时会起作用,因为我猜这些文件是直接从缓存中提取的,因此比调用回调要快,这很奇怪吗? 无论如何,有没有方法可以测试JS文件是否已完全加载,而无需在实际的JS文件本身中放入任何东西,因为我想使用相同的模式从我的控件(GMa
本文向大家介绍JQuery异步加载PartialView的方法,包括了JQuery异步加载PartialView的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JQuery异步加载PartialView的方法。分享给大家供大家参考,具体如下: 需求:页面上有dropdown之类的控件,当选择里面不同值的时候,下面关联的内容跟着改变。 思路:把与 dropdown关联的会改变的内容放到
本文向大家介绍JS同步、异步、延迟加载的方法,包括了JS同步、异步、延迟加载的方法的使用技巧和注意事项,需要的朋友参考一下 本文讲述了JS同步、异步、延迟加载的方法。分享给大家供大家参考,具体如下: 一:同步加载 我们平时使用的最多的一种方式。 <script src="http://yourdomain.com/script.js"></script> 同步模式,又称阻塞模式,会阻止浏览器的后续
本文向大家介绍vue+webpack实现异步组件加载的方法,包括了vue+webpack实现异步组件加载的方法的使用技巧和注意事项,需要的朋友参考一下 8.9更新:之前想搬迁到csdn的时候由于邀请码问题迟迟没把博客转过来,所以跑去博客园了,今天发现csdn已经帮我把文章搬过来,有必要修正一下这篇文章。 写这篇文章的时候因为刚接触vue,所以捣鼓的时候有些迷糊。 ----------------/
将所有页面组件一次性加载是一个很浪费资源和考验用户耐心的做法,尤其在移动端。 使用方法 webpack 提供了code splitting,你可以按照下面写法实现当切换到特定路由时才加载代码。 需要注意的是 vue-loader@13.0.0 语法有所变更,具体参照发布说明 v13.0.0 // vue-loader@13.0.0 之前 const Foo = () => import('./Fo