异步加载JS

时间:2015-02-13 07:08:10

标签: javascript requirejs amd

我正在编写一个完全基于JS构建的应用程序。因此,我有大量的JavaScript文件。但是,我不希望在我的index.html加载所有这些文件,只需要一个JS文件,它将继续处理其他JS依赖项。

RequireJS这样的东西。但我不想使用任何其他JS库或框架;甚至不是JQuery,并且所有内容都是用核心Javascript编写的。

如何实现这一目标?有什么东西我错了。?

2 个答案:

答案 0 :(得分:1)

请注意,如果这是您正在寻找的,但是您不能做(http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml)。如果要在特定时间加载它们,只需在准备就绪时调用该函数并使用setTimeout函数设置延迟(setTimeout(function_reference,timeoutMillis);)

function loadjscssfile(filename, filetype){
 if (filetype=="js"){ //if filename is a external JavaScript file
  var fileref=document.createElement('script')
  fileref.setAttribute("type","text/javascript")
  fileref.setAttribute("src", filename)
 }
 else if (filetype=="css"){ //if filename is an external CSS file
  var fileref=document.createElement("link")
  fileref.setAttribute("rel", "stylesheet")
  fileref.setAttribute("type", "text/css")
  fileref.setAttribute("href", filename)
 }
 if (typeof fileref!="undefined")
  document.getElementsByTagName("head")[0].appendChild(fileref)
}

loadjscssfile("myscript.js", "js") //dynamically load and add this .js file
loadjscssfile("javascript.php", "js") //dynamically load "javascript.php" as a JavaScript file
loadjscssfile("mystyle.css", "css") ////dynamically load and add this .css file

答案 1 :(得分:-1)

您可以在脚本标记中添加async属性,以异步方式加载JavaScript文件。像这样的东西

<script src="app.js" async="true">

如果您希望在加载html页面后执行脚本,可以使用defer属性。

更多信息here