10.09.2018, 11:01
|
Профессор
|
|
Регистрация: 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.
|
|
10.09.2018, 11:13
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
Сообщение от Artur_Hopf
|
я перенесь все внуть php файлика, стало лучше
|
Совсем наоборот.
Раньше js имел возможность кэшироваться отдельно от самой html-странички, теперь нет.
Сообщение от Artur_Hopf
|
Из за чего такая недозагрузка может происходить?
|
Из-за нестабильного соединения с сетью, например.
Сообщение от Artur_Hopf
|
как можно отследить загрузился ли весь js
|
Добавить в конец требуемого куска кода глобальный флаг, а после этого кода в отдельном теге script проверить наличие/значение этого флага.
Еще можно попробовать асинхронно подгружать и исполнять js.
Исполнение завершилось ошибкой, значит либо код кривой, либо файл подгрузился не полностью.
|
|
10.09.2018, 11:18
|
Профессор
|
|
Регистрация: 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.
|
|
10.09.2018, 11:27
|
|
Профессор
|
|
Регистрация: 08.11.2017
Сообщений: 641
|
|
|
|
10.09.2018, 11:33
|
Профессор
|
|
Регистрация: 13.03.2018
Сообщений: 278
|
|
SuperZen,
Спасибо, начал изучать =) оттестю, отпишусь, спасибо
|
|
10.09.2018, 11:38
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
Сообщение от Artur_Hopf
|
но почему php всегда загружается как надо
|
Может быть дело в том, что php код не передается по сети, а исполняется сервером, на котором изначально находится?
Сообщение от Artur_Hopf
|
поэтому кэш не нужен особо
|
Это вам он не особо нужен, а устройствам с нестабильным/медленным интернетом еще как нужен.
Сообщение от Artur_Hopf
|
что посоветуете
|
Как вам посоветовали выше, вы можете собрать весь ваш css/js в один файл, либо использовать http2 протокол. Одно другого не исключает.
|
|
10.09.2018, 18:13
|
Профессор
|
|
Регистрация: 13.03.2018
Сообщений: 278
|
|
Не помогло в общем, http2 не могу использовать потому что сервер на iis7, обновить нельзя.
webpack.js скомпоновал все, и css и js, один фиг может не прогрузится, причем с большей вероятностью не прогрузится до конца. Чего еще придумать я фиг знает
|
|
11.09.2018, 00:02
|
|
Профессор
|
|
Регистрация: 19.01.2012
Сообщений: 505
|
|
Artur_Hopf,
А как вы определяете что что-то не прогрузилось?
|
|
11.09.2018, 09:15
|
Профессор
|
|
Регистрация: 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.
|
|
|
|