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 并执行的更多相关文章

  1. js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

    js的引用,在浏览器,或微信上访问经常会遇到文件改了,但就是没有更新的问题,使用此函数可以轻松解决缓存问题只需要把js的引用方式改为使用此函数加载即可 源码如下: /** * js动态加载js css ...

  2. 页面加载异常 清除浏览器静态文件 js css 缓存 js动态加载js css文件,可以配置文件后辍,防止浏览器缓存

    js清除浏览器缓存的几种方法 - 兔老霸夏 - 博客园 https://www.cnblogs.com/Mr-Rocker/p/6031096.html js清除浏览器缓存的几种方法   一.CSS和 ...

  3. JS动态加载JS

    1.直接document.write <script language="javascript">     document.write("<scrip ...

  4. js动态加载js文件(js异步加载之性能优化篇)

    1.[基本优化] 将所有需要的<script>标签都放在</body>之前,确保脚本执行之前完成页面渲染而不会造成页面堵塞问题,这个大家都懂. 2.[合并JS代码,尽可能少的使 ...

  5. JS动态加载 js css

    1.动态加载js function loadScript( url ){ var script = document.createElement( "script" ); scri ...

  6. jquery js 动态加载 js文件

    jquery方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  7. JS动态加载JS文件

    有时候我们要根据场景加载不同的js文件,比如PC站加载某个文件,手机站不加载 <script> if ((navigator.userAgent.match(/(iPhone|iPod|A ...

  8. js动态加载以及确定加载完成的代码

    利用原生js动态加载js文件到页面,并在确定加载完成后调用相关function var otherJScipt = document.createElement("script") ...

  9. js动态加载css文件和js文件的方法

    今天研究了下js动态加载js文件和css文件的方法. 网上发现一个动态加载的方法.摘抄下来,方便自己以后使用 [code lang="html"] <html xmlns=& ...

随机推荐

  1. 云数据库RDS MySQL 版

    阿里云关系型数据库(Relational Database Service,简称RDS)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于阿里云分布式文件系统和SSD盘高性能存储,RDS支持MySQL. ...

  2. 终于搞懂了vue 的 render 函数(一) -_-|||

    终于搞懂了vue 的 render 函数(一) -_-|||:https://blog.csdn.net/sansan_7957/article/details/83014838 render: h ...

  3. CF235A 【LCM Challenge】

    这题好毒瘤啊 (特别是long long的坑,调了半天没调好!!)先将你特判一下小于3的话直接输出就是惹,不是的话就判断一下它能不能被2整除如果不能就直接输出n*(n-1)*(n-2)否则进行枚举枚举 ...

  4. 纯CSS实现tag彩色标签

    利用纯CSS实现彩色tag标签,效果如下图 代码如下: .items a:nth-child(9n){background-color: #4A4A4A;} .items a:nth-child(9n ...

  5. 模块之re模块 正则表达式

    正则表达式,正则表达式在处理字符串上有先天的优势,尤其大数量的字符串.先来记一个网站,此网站功能就是关于正则表达式方面的应用http://tool.chinaz.com/regex/ 单纯的正则表达式 ...

  6. GitLab: Deploy keys are not allowed to push code.

    被这个问题坑了,大半天.写此博文,愿入坑的童鞋能及时托坑 一.当你第一次pull或者push gitlab远程项目的时候提示你一个该建立一个sshkey,此时你在客户端生成sshkey 二.切记要把这 ...

  7. 03 Linux下运行Django项目

    1.安装windows和linux传输文件的工具 pip install lrzsz 提供两个命令 一个是上传一个是下载 rz 接收 直接rz sz 上传 直接sz 或者直接拖拽 2.在线下载资源的命 ...

  8. Nginx如何配置https证书?

    #把80端口请求跳转到443端口 server { listen 80; server_name 域名; return 301 https://$http_host$request_uri; } se ...

  9. html 中 图片和文字一行 垂直居中对齐

    效果:      代码:<div><img src='img/point_icon.png' width='35px' height='35px' style='float: lef ...

  10. postgresql 锁表查询语句

    1 查找锁表的pid select pid from pg_locks l join pg_class t on l.relation = t.oid where t.relkind = 'r' an ...