如何找到这些JS文件的调用者?

时间:2019-01-07 07:57:33

标签: javascript dojo arcgis-js-api

我有一个名为index.html的文件,应该执行以下行来显示地图:Controller.startup(notauth);。我已确保逻辑符合这一要求。 不知何故,地图不会出现,我在Chrome调试器中发现对错误的JS脚本路径有一些调用。

在这里,我的index.html中包含了几行内容:

 <script type="text/javascript">
        var dojoConfig = {
            async: true,
            packages: [{
                name: 'viewer',
                location: location.pathname.replace(/[^\/]+$/, '') + 'js/viewer'
            },{
                name: 'config',
                location: location.pathname.replace(/[^\/]+$/, '') + 'js/config'
            },{
                name: 'gis',
                location: location.pathname.replace(/[^\/]+$/, '') + 'js/gis'
            }]
        };


    </script>

            <script type="text/javascript" src="http://10.255.1.77/sonar/arcgis_js_api/library/3.15/3.15/init.js"></script>
            <script type="text/javascript">             
            //Get app ID from url 
            var file = 'config/viewer', s = window.location.search, q = s.match(/config=([^&]*)/i);
            //alert ('var file ORI (config/viewer) : ' + file);
            //alert ('nilainya Q : ' + q);
            if (q && q.length > 0) {
                file = q[1];
                //alert ('Q1 : ' + file);
                //alert ('S : ' + s);
                if(file.indexOf('/') < 0) {
                        configfile = 'config/' + file;
                }
                //alert ('CONFIG-FILE : ' + configfile);
            }

if (configfile == 'config/all') 
            {

                //alert ('config == ALL');
                //alert ('configfile is ' + configfile + ' -- strpathfile  : ' + strpathfile);


                if (ImgStatus && checkfileimg_js(strpathfile)) {
                    require(['viewer/Controller', configfile + '_imagery'], function(Controller, config){
                    Controller.startup(config);
                    });
                    }
                    else 
                    {
                    alert ('controller.startup(notauth) Hellow NOAUTH ');
                    require(['viewer/Controller', 'config/all'], function(Controller, notauth)
                        {
                        Controller.startup(notauth);
                        });
                    }   
            }               
                else    //IF configfile <> ALL (env,pims,clear dll)

            { 
                Controller.startup(auth);
            }

当我在Chrome中调试它时,我得到以下结果: -结果1:https://snag.gy/g37joA.jpg -结果1:https://snag.gy/aBMren.jpg

正确的路径应为“ http://10.255.1.77/sonar/arcgis_js_api/library/3.15/3.15/dijit/TitlePane.js” 不是http://10.255.1.77/sonar/arcgis_js_api/library/3.15/dijit/TitlePane.js

那些JS来自哪里?我无法在index.html中找到它们。我在哪里以及如何找到调用这些JS脚本的行?

请帮助

2 个答案:

答案 0 :(得分:1)

您可以在 Chrome开发工具的标签Network的列Initiator中找到此信息:

Initiator column in Chrome DevTools

答案 1 :(得分:1)

您必须在HOSTNAME_AND_PATH_TO_JSAPIinit.js(在esri js api内部)中正确配置dojo.js

init.js和:

中都应该看起来像

http://10.255.1.77/sonar/arcgis_js_api/library/3.15/3.15/

  

那些JS来自哪里?

脚本是异步加载的(请参见Modern dojo AMD

 require(['viewer/Controller'], function(controller)) ... 

这将搜索查看器(取决于顶部创建的config dojo)your_app_url/js/viewer/Controller.js并将其加载到脚本中并注册,

控制器中的每个需求也将异步加载脚本,这种现代的AMD可以防止导入未使用的模块(模块化加载)。