Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.09.2018, 11:01
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Как определить прогрузился ли javascript?
Добрый день. Есть проблема, когда страница грузится через wifi соединение, javascript может просто не загрузится. Из за чего такое может быть? Может кто сталкивался.

И как можно отследить загрузился ли весь js код который находится в подобном php файле:
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
</head>
<body> 
    <script type="text/javascript">
      // вот тут любая часть может не прогрузится, как написать чтобы отлеживать целостность?
    </script>
</body>
</html>


Из за чего такая недозагрузка может происходить? сам js грамотно написан, все в функциях, через сеть за секунду грузится.
Может проблема в настройке wifi? хотя код php всегда 100% загружается и отрабатывает

Помогите пожалуйста. Давно уже с этим борюсь. Раньше весь javascript код был в отдельном js файле, но так вероятность прогрузки была еще меньше и я перенесь все внуть php файлика, стало лучше, но js код пропадает 5ть из 10 раз.
И кстати даже фаил css может не прогрузится.

Последний раз редактировалось Artur_Hopf, 10.09.2018 в 11:06.
Ответить с цитированием
  #2 (permalink)  
Старый 10.09.2018, 11:13
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от Artur_Hopf
я перенесь все внуть php файлика, стало лучше
Совсем наоборот.
Раньше js имел возможность кэшироваться отдельно от самой html-странички, теперь нет.

Сообщение от Artur_Hopf
Из за чего такая недозагрузка может происходить?
Из-за нестабильного соединения с сетью, например.

Сообщение от Artur_Hopf
как можно отследить загрузился ли весь js
Добавить в конец требуемого куска кода глобальный флаг, а после этого кода в отдельном теге script проверить наличие/значение этого флага.

Еще можно попробовать асинхронно подгружать и исполнять js.
Исполнение завершилось ошибкой, значит либо код кривой, либо файл подгрузился не полностью.
Ответить с цитированием
  #3 (permalink)  
Старый 10.09.2018, 11:18
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Nexus,
По поводу кривого кода, я просто например загружаю вот эти вот библиотеки вот так вот:
<!DOCTYPE HTML>

<html lang="ru">

<head>
    <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/>	 
    <title>title</title>
    <link rel="shortcut icon" href="inc/img/term.ico" type="image/x-icon">
    <link rel="stylesheet" href="inc/css/bootstrap.4.1.2.min.css" />
    <link rel="stylesheet" href="inc/css/styletermin.css" />
    <link rel="stylesheet" href="inc/css/DateTimePicker.css" />
    <link rel="stylesheet" href="inc/css/fontawesome-all.css"/>
    <link rel="stylesheet" href="inc/css/jquery.virtual_keyboard.css"/>
    <script type="text/javascript" src="inc/js/jquery-3.2.1.min.js"></script>
    <script type="text/javascript" src="inc/js/jquery.cardswipe.js"></script>
    <script type="text/javascript" src="inc/js/bootstrap4.1.min.js"></script>
    <script type="text/javascript" src="inc/js/popper.js"></script>   
    <script type="text/javascript" src="inc/js/pdf/pdf.worker.js"></script>
    <script type="text/javascript" src="inc/js/flot/jquery.flot.js"></script>
    <script type="text/javascript" src="inc/js/flot/jquery.flot.crosshair.js"></script>
    <script type="text/javascript" src="inc/js/flot/jquery.flot.time.min.js"></script>
    <script type="text/javascript" src="inc/js/flot/jquery.flot.symbol.min.js"></script>
    <script type="text/javascript" src="inc/js/flot/jquery.flot.axislabels.js"></script>
    <script type="text/javascript" src="inc/js/pdfobject.min.js"></script>
    <script type="text/javascript" src="inc/js/DateTimePicker.js"></script>
    <script type="text/javascript" src="inc/js/jquery.virtual_keyboard.js"></script>
</head>
<body>

И у меня любой абсолютно файлик может не догрузится, в том числе и css.
На сеть я тоже грешу, но почему php всегда загружается как надо?

Теперь я их все загрузил в php файлики, и проблем стала меньше, но они не разрешились, что посоветуете ? =(

И да это одностраничный сайт, там не надо бегать по ссылкам, поэтому кэш не нужен особо.

Последний раз редактировалось Artur_Hopf, 10.09.2018 в 11:20.
Ответить с цитированием
  #4 (permalink)  
Старый 10.09.2018, 11:27
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

потому что надо использовать упаковщики типа https://parceljs.org/, https://webpack.js.org/, https://rollupjs.org/guide/en, и т.д.
Ответить с цитированием
  #5 (permalink)  
Старый 10.09.2018, 11:33
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

SuperZen,
Спасибо, начал изучать =) оттестю, отпишусь, спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 10.09.2018, 11:38
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от Artur_Hopf
но почему php всегда загружается как надо
Может быть дело в том, что php код не передается по сети, а исполняется сервером, на котором изначально находится?

Сообщение от Artur_Hopf
поэтому кэш не нужен особо
Это вам он не особо нужен, а устройствам с нестабильным/медленным интернетом еще как нужен.

Сообщение от Artur_Hopf
что посоветуете
Как вам посоветовали выше, вы можете собрать весь ваш css/js в один файл, либо использовать http2 протокол. Одно другого не исключает.
Ответить с цитированием
  #7 (permalink)  
Старый 10.09.2018, 18:13
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Не помогло в общем, http2 не могу использовать потому что сервер на iis7, обновить нельзя.
webpack.js скомпоновал все, и css и js, один фиг может не прогрузится, причем с большей вероятностью не прогрузится до конца. Чего еще придумать я фиг знает
Ответить с цитированием
  #8 (permalink)  
Старый 10.09.2018, 18:50
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

ну тогда это видимо проблемы iis

https://stackoverflow.com/questions/...ng-within-aspx

https://forums.iis.net/t/1182335.aspx

а что бывает если ресурсы в статике они вообще выдаются хотя бы в виде http://localhostort/url/css/...?

и было бы классно понять какой браузер )

можно как финт ушами, все скрипты и стили запихнуть копипастом в хтмл, и проверить,)
Ответить с цитированием
  #9 (permalink)  
Старый 11.09.2018, 00:02
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 505

Artur_Hopf,
А как вы определяете что что-то не прогрузилось?
Ответить с цитированием
  #10 (permalink)  
Старый 11.09.2018, 09:15
Профессор
Отправить личное сообщение для Artur_Hopf Посмотреть профиль Найти все сообщения от Artur_Hopf
 
Регистрация: 13.03.2018
Сообщений: 278

Сообщение от Белый шум Посмотреть сообщение
Artur_Hopf,
А как вы определяете что что-то не прогрузилось?
В консоли ошибки, на вроде не пойму что там написанно, вот например код css:
Код:
.container-panel{
    position:absolute;
    z-index: 1;
    width: 12%; height: 19.5%;
    left: 87%;
    overflow: hidden;
    border: none;
    background: linear-gradient(90deg, #d1ecf1 75%, #ecf0f5);
}
Так вот этот файлик до клиента может дойти так например:
Код:
.container-panel{
    position:absolute;
    z-index: 1;
    width: 12%; height: 19.5%;
    left: 87%
И все браузер ругается, мол не пойму где точка запятая и скобки.
И с js например код:
function wt (){    
    $.getJSON('wt', function(data) {
        for(var i = 0; i<data.length; i++){
            if(data[i].length != 0){
                dateTimeWT[i] = data[i][0];
            }
        }
    });
}


До клиента дойдет только часть.
function wt (){    
    $.getJSON('wt', function(data) {
        for(var i = 0; i<data.length; i++){

И все, дальше весь код он может и есть, имею ввиду другие функции, но дальше уже не работает.
Проще говоря код на клиенте рушится, а может и загрузится без проблем, 50 на 50.
Вчера я скомпоновал по инструкции https://webpack.js.org/guides/asset-management/, если через сетку обращаться то все и так работает, а если по wifi то жопка =(

Я использую фреймворк codeigniter, может в нем дело, но я не уверен.

Последний раз редактировалось Artur_Hopf, 11.09.2018 в 09:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить соединение с интернетом на JavaScript? mmotor AJAX и COMET 7 28.07.2015 06:08
Javascript в новой вкладке не такой как в старой ninja2 Общие вопросы Javascript 10 09.06.2015 14:01
Как на JavaScript подгрузить JavaScript? Pug-dog&Elephant Opera, Safari и др. 2 18.09.2011 15:43
Как можно совместить 2 "одинаковые javascript но разные внутри" в одну страницу?..ато rashid86 Элементы интерфейса 2 25.04.2011 22:49
Определить как происходит resize W1nD Events/DOM/Window 2 20.04.2011 14:02