`
aidxn527
  • 浏览: 43943 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类

JS动态载入外部JS文件

    博客分类:
  • JS
阅读更多

我们经常把一大堆的JS文件在页面载入的时候就全部载入,可这样就造成了页面载入速度慢,用到的时候才载入才是最好的。

    按需载入有许多种写法,比如document.writeln("<script src='js.js' tyep='text/jsvascript'></sc"+"ript>"),但是这种写法只适合首次载入或者需要添加iframe,不是很好。

   将js做为一个DOM节点对象引入无疑是最好的选择,比如:

  
    

var _script = document.createElement("script");

    _script .type = "text/javascript";

    _script .src = "js.js";

    document.getElementsByTagName("head")[0].appendChild(_script);

  


    以前我都是这么做的,如果没马上执行里面的方法的话,有足够的时间给IE载入和解析文件的话那么是不会出错(以前都没马上执行)。

    如果马上执行里面的方法的话,在FF下是不会出错,FF会先将文件载入并解析完毕后才执行,而IE却是同步的,它会在载入的同时就往下执行了,所以就会报错。

    解决方法,使用AJAX读取外部JS内容:

   

//外部引入SCRIPT,如果SRC已存在不加入,不存在加入
//参数: src -> JS的路径, evtFun -> 载入后需要执行的事件方法名
function appendScript(src, evtFun)
{
    //取得页面上所有的SCRIPT元素
    script = document.getElementsByTagName("script");
    //外部引入SCRIPT,如果SRC已存在不加入,不存在加入
    for (var i = 0; i < script.length; i++)
    {
        if (script[i].getAttribute("id") == src)
        {
            if (evtFun)
            {
                evtFun();
            }
            return;
        }
    }
    
    //外部引入JS通过AJAX取回
    function getScript(result)
    {
        var jsCode = result.responseText;
        var _script = document.createElement("script");
        _script.setAttribute("language", "javascript");
        _script.setAttribute("type", "text/javascript");
        _script.setAttribute("text", jsCode);
        _script.setAttribute("id", src);
        document.getElementsByTagName("head")[0].appendChild(_script);
        if (evtFun)
        {
            evtFun();
        }
    }
    
    //AJAX读取引入的JS内容
    AjaxPost(src, null, getScript});
} 

//调用方法

function do()
{
    function show()
    {
        abc();         //abc为js.js内的一个方法
    }
    
    appendScript("js.js", show);            //参数:地址,事件
}

  

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pippe/archive/2008/03/14/2183672.aspx

分享到:
评论

相关推荐

    AJAX 载入JS文件,载入CSS文件,载入JS函数,执行JS

    // 加载外部JS文件 if (DomJs !== null) { for (let i = 0; i &lt; DomJs.length; i++) { let jsPath = DomJs[i].replace(/&lt;load-js&gt;/g, "").replace(/&lt;\/load-js&gt;/g, ""); loadExternalScript(jsPath); } } /...

    Js载入文件并显示进度条JSLoader

    JSLoader是一种利用JavaScript实现的文件加载工具,它主要用于动态地加载外部资源,如JavaScript文件、CSS样式表、图片等,并且在加载过程中提供进度反馈,以提升用户体验。在Web开发中,尤其在处理大量异步加载时,...

    threejs测试文件格式汇总

    在三维图形渲染领域,Three.js 是一款非常流行的 JavaScript 库,它使得在浏览器中创建复杂的3D场景变得简单。这个“threejs测试文件格式汇总”集合了多种3D模型文件格式,包括 obj、gltf、glb、pcd、nrrd 和 3ds,...

    动态载入/删除/更新外部 JavaScript/Css 文件的代码

    动态载入 JavaScript/Csss 文件 传统加载外部JavaScript(*.js) 或者 Css(*.css)文件的方法是直接在&lt;head&gt;标签里面进行添加: 代码如下: &lt;head&gt; [removed][removed] &lt;link rel=”stylesheet” type=”...

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

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

    ajax方式载入外部页面数据的层打开效果.txt

    ### AJAX方式载入外部页面数据的层打开效果详解 #### 一、背景介绍 在Web开发中,异步加载(Asynchronous JavaScript and XML,简称AJAX)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在...

    如何让动态插入的javascript脚本代码跑起来

    在JavaScript编程中,动态插入脚本是一种常见的技术,用于在页面加载后或者根据某些条件按需加载外部的JavaScript文件。这种技术在处理大型应用、优化页面性能或实现异步加载时非常有用。本文将详细介绍如何让动态...

    页面载入等待代码(用javascript技术实现)

    这可以通过CSS和JavaScript组合实现,例如使用CSS3动画或JavaScript动态改变元素的样式。以下是一个简单的例子,创建一个旋转的加载图标: ```css .loading-spinner { width: 20px; height: 20px; border: 3px ...

    在layui tab控件中载入外部html页面的方法

    本文介绍了三种在layui tab控件中载入外部HTML页面的方法,包括iframe方式、ajax方式和script脚本方式。下面详细说明每种方法的具体实现和相关知识点。 一、iframe方式 iframe是内联框架的缩写,它可以在网页中...

    xml 外部载入图片

    XML(Extensible Markup Language)是一种...总结来说,XML外部载入图片涉及XML解析、URL处理、图片显示以及可能的样式和布局管理等多个步骤。通过理解这些知识点,开发者可以构建出能够灵活处理图像数据的应用程序。

    我自己写的可以触发事件,载入其他页面的JS

    标题中的“我自己写的可以触发事件,载入其他页面的JS”指的是一个自定义的JavaScript功能,它可以监听并响应特定的事件,并在事件触发时动态加载外部网页内容。不同于jQuery的`load()`方法,这个功能可能提供了更为...

    jessibuca+vue+js

    标题中的“jessibuca+vue+js”表明这是一个基于Vue.js和JavaScript开发的项目,很可能是用于构建一个Web应用程序,特别地,根据描述提到的“用于播放监控”,我们可以推测这是一个与视频监控相关的Web应用。Vue.js是...

    js+HTML5 canvas 实现简单的加载条(进度条)功能示例.docx

    接下来,我们需要在`&lt;script&gt;`标签内或者外部的JavaScript文件(如`script.js`)中获取这个`canvas`元素,并获取它的2D渲染上下文,这将是我们用来绘制图形的“画笔”: ```javascript var loadingProgressCanvas =...

    纯javascript仿做土豆网豆单列表载入图片特效.zip

    【描述】提到的“纯javascript仿做土豆网豆单列表载入图片特效”指的是,不依赖任何外部库(如jQuery),完全用原生JavaScript编写的一种技术实现。这种特效通常包括懒加载(lazy loading)功能,即当用户滚动页面时...

    js下利用控制器载入对应脚本

    jQuery的getScript方法可以用来动态载入外部的JavaScript文件。一旦脚本文件被载入并执行,就可以在全局命名空间中使用这些脚本暴露的方法。 在代码示例中,我们看到定义了一个名为loadMod的函数,它被扩展到了...

    javascript编程.pdf

    - 将 JavaScript 代码保存在一个单独的 .js 文件中,然后通过 `&lt;script src="path/to/script.js"&gt;&lt;/script&gt;` 引入到 HTML 文件中。 ### 3. JavaScript 常用对象及其使用案例 #### 3.1 最常用情景:事件处理 - ...

    利用Javascript制作特效网页的方法.pdf

    2. 使用外部链接文件,通过标记将JavaScript文件链接到HTML文档中。 利用JavaScript制作常见特效网页的方法 JavaScript可以自由地被嵌入到HTML的文件之中,为我们提供了一种扩展HTML文档的手段,使网页具有特殊的...

    webview加载本地的html文件

    注意,加载本地文件时,为了保证安全性,通常会禁用WebView的JavaScript执行,但若需要执行JavaScript代码,可以使用`webView.getSettings().setJavaScriptEnabled(true);`来启用。 在实际应用中,我们可能还需要对...

    flash载入html

    HTML可以包含文本、图像、链接等元素,并通过CSS进行样式定义,JavaScript则负责添加动态功能。 “Flash载入HTML”的技术实现主要依赖于Flash ActionScript,这是一种基于ECMAScript的脚本语言。ActionScript允许...

Global site tag (gtag.js) - Google Analytics