js 动态加载js 并执行
function loadJS(url, success) {
var domScript = document.createElement('script');
domScript.src = url;
success = success || function () {};
domScript.onload = domScript.onreadystatechange = function () {
if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
success();
this.onload = this.onreadystatechange = null;
this.parentNode.removeChild(this);
}
}
document.getElementsByTagName('head')[0].appendChild(domScript);
}
loadJS("1.js");
</script>
转自 http://yijiebuyi.com/blog/2b23b571a0d5c94047f7e9c3150ac25d.html
!function loadJS(){
var jsFile = [
{name:'file1',path:'js/file1.js',active:false,load:false},
{name:'file2',path:'js/file2.js',active:false,load:false},
{name:'file3',path:'js/file3.js',active:false,load:false},
{name:'file4',path:'js/file4.js',active:false,load:false},
{name:'file5',path:'js/file5.js',active:false,load:false}
]
jsFile.forEach(function(item, index){
if(localStorage['file_' + item.name]){
item.load = true
implementJS(item, index)
}else{
$.ajax({
type:"get",
url:item.path,
dataType:'text',
success:function(data){
item.content = data
item.load = true
implementJS(item, index)
}
});
}
})
function implementJS(item, index){
//如果上一个文件已经执行了,则执行这个js文件
if(index == 0 || jsFile[index - 1].active){
storageJS(item, index)
//尝试执行下一个js文件
jsFile[index + 1] && jsFile[index + 1].load && implementJS(jsFile[index + 1], index + 1)
}
}
function storageJS(item, index){
//存储并执行js文件
var name = 'file_' + item.name
localStorage[name] = item.content || localStorage[name] || ''
//这里要使用window.eval或者eval.call(window),否则eval里面的变量就不是全局变量
window.eval(localStorage[name])
item.active = true
}
}()
//转自 https://segmentfault.com/a/1190000017548171
js 动态加载js 并执行的更多相关文章
- js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...
- 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存
js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法 一.CSS和 ...
- JS动态加载JS
1.直接document.write <script language="javascript"> document.write("<scrip ...
- js动态加载js文件(js异步加载之性能优化篇)
1.[基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂. 2.[合并JS代码,尽可能少的使 ...
- JS动态加载 js css
1.动态加载js function loadScript( url ){ var script = document.createElement( "script" ); scri ...
- jquery js 动态加载 js文件
jquery方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- JS动态加载JS文件
有时候我们要根据场景加载不同的js文件,比如PC站加载某个文件,手机站不加载 <script> if ((navigator.userAgent.match(/(iPhone|iPod|A ...
- js动态加载以及确定加载完成的代码
利用原生js动态加载js文件到页面,并在确定加载完成后调用相关function var otherJScipt = document.createElement("script") ...
- js动态加载css文件和js文件的方法
今天研究了下js动态加载js文件和css文件的方法. 网上发现一个动态加载的方法.摘抄下来,方便自己以后使用 [code lang="html"] <html xmlns=& ...
随机推荐
- nslookup 命令
NAME nslookup - query Internet name servers interactively SYNOPSIS nslookup [-option] [name | -] [se ...
- Tableau常用函数、功能
Tableau常用函数 创建计算字段: Tableau常用功能
- 在PostgreSQL中 pg_start_backup 做了什么?
# 在PostgreSQL中 pg_start_backup 做了什么?HM 2019-07-30 ## pg_start_backup 做一个备份开始标记,还做了一些其他的操作,下面进行探寻. * ...
- Threadlocal线程本地变量理解
转载:https://www.cnblogs.com/chengxiao/p/6152824.html 总结: 作用:ThreadLocal 线程本地变量,可用于分布式项目的日志追踪 用法:在切面中生 ...
- O015、OpenStack 架构
参考https://www.cnblogs.com/CloudMan6/p/5340622.html 终于正式进入OpenStack 部分了. 今天开始正式学习OpenStack,OpenSt ...
- js 控制加载|移除 script 与 link 文件
js 加载 script 文件 /** * 加载 script 文件 * @param src */ function loadScript(src) { var addSign = true; va ...
- echarts属性的设置
// 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...
- Caffe之prototxt
1.可视化工具: http://ethereon.github.io/netscope/quickstart.html 2.常用网络模型caffe-model之.prototxt: https://g ...
- Hadoop网页监控配置
接之前的内容http://www.cnblogs.com/jourluohua/p/8734406.html 在之前那的内容中,仅实现了Hadoop的安装和运行,距离实际使用还有很远.现在先完成一个小 ...
- linux中查看文件夹结构的小工具
tree命令是Linux/UNIX系统中常用的命令,可以非常方便地查看文件夹的结构,并且以树形目录的形式展示 在Ubuntu中安装 sudo apt-get install tree 在CentOS中 ...