`

动态加载js

    博客分类:
  • js
阅读更多
function loadScript(scriptArr){
	if(scriptArr.length > 0){
		var script = scriptArr[0];
		jQuery.getScript(script,function(){
			scriptArr.splice(0,1);
			loadScript(scriptArr);
		});
	}
}
$(document).ready(function(){
	$(function(){
		$.ajax({
			url: 'static/js/script.json',
			data: {},
			type: 'get',
			async : false,/**同步*/
			success : function(response) {
				if(response){
					var scriptArr = eval('('+response+')');
					if(scriptArr){
						loadScript(scriptArr);
					}
				}
			},
			error: function(response) {
				console && console.log("js json请求失败!");
			}
		})
	});
});

 

另外一种动态加载js?(有待进一步验证)

var JCore = { //构造核心对象
	version : 1.0,
	$import : function (importFile) {
		var file = importFile.toString();
		var IsRelativePath = (file.indexOf("$") == 0 || file.indexOf("/") == -1); //相对路径(相对于JCore)
		var path = file;
		if (IsRelativePath) { //计算路径,$开头表示使用当前脚本路径,/开头则是完整路径
			if (file.indexOf("$") == 0)
				file = file.substr(1);
			path = JCore.$dir + file;
		}
		var newElement = null,
		i = 0;
		var ext = path.substr(path.lastIndexOf(".") + 1);
		if (ext.toLowerCase() == "js") {
			var scriptTags = document.getElementsByTagName("script");
			for (var i = 0; ilength; i++) {
				if (scriptTags[i].src && scriptTags[i].src.indexOf(path) != -1)
					return;
			}
			newElement = document.createElement("script");
			newElement.type = "text/javascript";
			newElement.src = path;
		} else if (ext.toLowerCase() == "css") {
			var linkTags = document.getElementsByTagName("link");
			for (var i = 0; ilength; i++) {
				if (linkTags[i].href && linkTags[i].href.indexOf(path) != -1)
					return;
			}
			newElement = document.createElement("link");
			newElement.type = "text/css";
			newElement.rel = "Stylesheet";
			newElement.href = path;
		} else
			return;
		var head = document.getElementsByTagName("head")[0];
		head.appendChild(newElement);
	},
	$dir : function () {
		var scriptTags = document.getElementsByTagName("script");
		for (var i = 0; ilength; i++) {
			if (scriptTags[i].src && scriptTags[i].src.match(/JCore/.js$ / )) {
				path = scriptTags[i].src.replace(/JCore/.js$ / , "");
				return path;
			}
		}
		return "";
	}
}

 

分享到:
评论

相关推荐

    vue动态加载js.zip

    在Vue.js应用开发中,有时候我们可能需要动态加载JavaScript资源,比如某些库或者插件只在特定场景下使用,为了优化性能,不希望一开始就加载。Vue动态加载JS是一种实现这一需求的技术,它允许我们在运行时根据需要...

    javascript函数动态加载javascript文件

    动态加载JavaScript文件的基本原理是利用`<script>`标签的异步加载特性或者使用`XMLHttpRequest`或`fetch` API来创建HTTP请求获取JS文件。下面我们将深入探讨这两种方法: 1. **使用`<script>`标签**: 在HTML中,...

    vue动态加载外部依赖js代码实现

    ### Vue动态加载外部JS代码实现 #### 概述 在前端开发中,有时我们需要动态地加载外部JavaScript库或脚本文件。特别是在构建大型Vue应用程序时,可能会遇到需要按需加载某些功能的情况,例如第三方库、API接口等。...

    动态创建iframe,并动态添加js执行代码

    总结来说,动态创建iframe并动态添加js执行代码是Web开发中的重要技术,它能够帮助我们实现异步加载、跨域通信等功能,但同时也需要注意相关的安全问题。通过熟练掌握这些技术,开发者能够构建更复杂、更灵活的Web...

    动态加载外部JS文件

    动态加载外部JS文件是网页开发中的一个重要技术,它允许网页在需要时按需加载JavaScript资源,从而提高页面的加载速度,优化用户体验,并有效地管理复杂的项目结构。以下将详细阐述动态加载的原理、方法以及相关实践...

    JQuery动态加载JS插件,很难找的哦

    本篇文章将深入探讨如何使用jQuery实现动态加载JavaScript插件,这是一个在网页开发中非常实用的技术,尤其是在优化页面性能和减少初始加载时间方面。 首先,理解动态加载的基本原理。在传统的网页开发中,所有的...

    asp.net动态加载JavaScript树

    ASP.NET动态加载JavaScript树是一种常见的前端交互技术,用于在网页中构建可扩展的、动态的树形结构。这种技术结合了后端ASP.NET的强大处理能力和前端JavaScript的灵活展示,为用户提供了良好的交互体验,尤其适用于...

    Extjs3动态加载js源码

    动态加载JS(Dynamic JavaScript Loading)是现代Web开发中的一个重要技术,它可以提高页面的加载速度,减少初始加载的数据量,并在需要时按需加载资源,从而优化用户体验。 在ExtJS 3中,虽然没有像ExtJS 4那样...

    JS动态加载库

    JavaScript动态加载库是一种技术,它允许开发者在网页运行时按需加载JavaScript文件,而不是一次性在页面加载时加载所有脚本。这种技术对于优化网页性能、减小初始加载时间以及实现模块化开发非常重要。下面将详细...

    动态加载js文件

    可以通过extjs3进行动态加载js,也可以直接通过原生js进行调用 拥有extjs4的动态加载功能, 可以同时加载多个js文件, 同时加载过的文件不会重复加载

    EXTJS4 MVC+ASP.NET MVC3动态加载JS文件实例

    本例采用ASP.NET MVC3 +EXTJS4 MVC 框架,完美实现了EXTJS4动态加载JS文件,对ASP.NET MVC3及EXTJS4 MVC 各应用要点进行了应用。对于想采用ASP.NET MVC3 +EXTJS4 MVC 框架的学习者有很好的帮助,快速掌握MVC框架,本...

    js动态加载器(只限JS)

    动态加载js文件,让js文件实现用不到绝不加载的功能!

    Ext4 动态加载js例子

    `Ext.Loader` 是 Ext4 中的一个核心特性,用于动态加载所需的 JavaScript 类库和模块,这在开发大型应用时尤其有用,因为它可以显著减少页面初次加载时的资源需求。 动态加载的核心在于按需加载,即只有在实际需要...

    动态加载JS文件和CSS文件,多浏览器支持。

    动态加载JS文件和CSS文件,多浏览器支持。多个JS文件同时加载,加载完成后执行回调方法。 使用方法: var loader=new RemoteLoader(); loader.loadFiles(["yy.js","jj.jus"],作用域);

    动态添加css或js链接

    4. **动态添加JS链接** 5. **注意事项** ### 1. 理解动态加载的概念 动态加载指的是在页面加载过程中根据特定条件来决定是否加载某些资源(如CSS或JS文件)。这种方式可以显著提升用户体验,尤其是在网络条件不佳...

    JS 动态加载js文件和css文件 同步/异步的两种简单方式

    JavaScript动态加载资源文件是指在页面加载完成后,根据需要从服务器动态加载额外的脚本(js文件)或样式表(css文件)。这种方法可以减少初始页面加载时的资源消耗,提高页面的加载速度。动态加载可以通过两种方式...

    使用jquery动态加载js文件的方法

    动态加载JavaScript文件是一种在网页运行时,根据需要将JavaScript文件加载到页面中的技术。这种方法通常用于页面初始化时不需要执行的脚本,或者根据用户操作来决定加载哪些脚本,以此减少页面的初始加载时间,提高...

    动态加载JavaScript文件的两种方法_.docx

    动态加载JavaScript文件是提高网页性能和优化用户体验的重要技术。它允许网页在需要时按需加载脚本,避免一次性加载大量资源导致页面加载速度减慢。本文将详细介绍两种常见的动态加载JavaScript文件的方法,并讨论...

Global site tag (gtag.js) - Google Analytics