Как найти абонента этих файлов JS? - PullRequest
0 голосов
/ 07 января 2019

У меня есть файл с именем 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 голосов
/ 07 января 2019

Вы должны правильно настроить HOSTNAME_AND_PATH_TO_JSAPI в ваших init.js и dojo.js (внутри esri js api),

должно выглядеть как init.js, так и:

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

Откуда приходят эти JS?

Скрипты загружаются асинхронно (см. Современное додзё AMD )

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

это будет искать средство просмотра (зависит от конфигурации dojo, созданного сверху) your_app_url/js/viewer/Controller.js, загрузить его в скрипт и зарегистрировать,

также каждый запрос внутри вашего контроллера будет загружать сценарии асинхронно, этот современный AMD предотвратит импорт неиспользуемых модулей (модульная загрузка).

0 голосов
/ 07 января 2019

Вы можете найти эту информацию в Chrome DevTools , вкладка Network, столбец Initiator:

Initiator column in Chrome DevTools

...