如何延迟JavaScript外部文件加载(script标签)

前言

这是一个页面加载顺序的问题,因为想引用一个现成的js文件做一下表格,但是这个js文件已经封装得很好了,所以直接修改js就有点复杂。但是如果直接在html里面写上<script>标签,我使用ajax动态生成的DOM节点因为加载顺序的问题,无法被这个js文件初始化,导致这个表格出现了bug。

解决方案

看了一下国内的网站好像没有什么好的解决方案,用Stack Overflow搜了一下,解决方法确实很机智。链接在此

就是以DOM节点的方式添加script标签,这样你就能随时控制js文件的引入时机。

我的方案就是使用ajax的complete函数,在所有节点生成完毕之后引入该js文件。

initFun();
//初始化界面

function initFun() {
	$.ajax({
		method: "GET",
		url: "some.php",
		data: { 
			admin_id:id
		},
		success: function(res){
			alert("初始化成功");
			// TODO 处理res
		},
		error: function(){
			alert("初始化方法异常");
		},
		complete: function() {
			//处理好节点再绑定类的方法
			delay_script_load();
		}
	});
}

function delay_script_load() {
	var script = document.createElement('script');
	script.src = "assets/pages/datatables.editable.init.js";
	document.body.appendChild(script);
}     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值