Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在一个文件中导入javascript依赖项_Javascript - Fatal编程技术网

如何在一个文件中导入javascript依赖项

如何在一个文件中导入javascript依赖项,javascript,Javascript,在我的应用程序中,我们有将近100多个web页面(html页面),所有容器都是一个引用内部javascript库的脚本 例如,它们都加载此文件: http://server/application/map.js 但是,map.js必须使用jquery和openlayers以及其他一些东西 直接将这些依赖项添加到100多个页面不是一个好主意,因为map.js的实现有一天可能会改变 例如,我们现在使用openlayers,但有一天我们可能会使用googlemap。如果这样,我们将不得不修改100多

在我的应用程序中,我们有将近100多个web页面(html页面),所有容器都是一个引用内部javascript库的脚本

例如,它们都加载此文件:

http://server/application/map.js
但是,map.js必须使用
jquery
openlayers
以及其他一些东西

直接将这些依赖项添加到100多个页面不是一个好主意,因为
map.js
的实现有一天可能会改变

例如,我们现在使用
openlayers
,但有一天我们可能会使用
googlemap
。如果这样,我们将不得不修改100多个页面,从
openlaeyrs
更改为
googlemap

因此,我想知道是否可以在
map.js
中添加依赖项

当然,我可以像这样直接在
map.js
中添加脚本:

map.js

((function(){
   addScript("jquery");
   addScript("openlayers");

   function addScript(){
     // add a script element to the head of the page 
   }
})();
但它可能会因为js下降时间而导致问题


还有其他的想法吗?

你需要一个抽象的页眉和页脚,它可以自动处理你所有的include(css、js库)

在最坏的情况下,您应该只在每页添加这些内容

更好的是,所有这些都应该由您正在使用/已经构建的任何系统自动完成(想想带有外壳/模板的CMS,至少部分是数据驱动的)。即使您没有system/CMS,设置一些非常基本的东西也应该是非常简单的

如果您只希望根据内容包含某些文件(作为从属文件),那么最好在抽象的页眉/页脚中动态地表驱动某些包含文件

jQuery的工作方式是,它只发送一个ajax get请求,基本上使用
eval
加载脚本。因此,如果您想使用普通的旧javascript来实现这一点,您可以使用以下内容:

加载脚本的普通老JavaScript方法 jQuery使用了一种更好的评估方法(我在上面的示例中没有包括),以防您希望将其合并到脚本中

jQuery的Eval的更高级版本: 其他方式
作者还讨论了在javascript中动态加载脚本的一些其他方法。如果您对我的示例或任何内容有任何疑问,请告诉我:)

为什么要手动编辑所有这些HTML页面?您可能希望看到这个-请参见。这个
https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers.js
,作为最终用户,我只添加了
OpenLayers.js
,然后openlayer将添加自己的文件。嗨,你能在我的帖子下查看我的评论吗?我发现人们使用
文档。write
添加脚本,为什么他们不满足加载问题?
function addScript(script)
{
    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            eval(xmlhttp.responseText);
        }
    }
    xmlhttp.open("GET",script,true);
    xmlhttp.send();
}
addScript("path/to/jquery.js");
addScript("yourscript.js");
globalEval: function( data ) {
        if ( data && jQuery.trim( data ) ) {
            // We use execScript on Internet Explorer
            // We use an anonymous function so that context is window
            // rather than jQuery in Firefox
            ( window.execScript || function( data ) {
                window[ "eval" ].call( window, data );
            } )( data );
        }
    },