Js приложение то работает то нет [закрыт]

188
24 февраля 2019, 16:20

Не могу понять в чем проблема. Есть приложение myeveryday.ru если на него зайтм вроде все работает, но если заходить периодически или перезагружать страницу то выдает ошибки, котопые я не понимаю, потом если снова перезагрузить ошибки пропадают.

Есть подозрение что это из за порядка подключения js фвйлов, но тогда непонятно почему оно всетаки иногда работает а иногда нет

Answer 1

<html> 
 
<head> 
  <!-- Latest compiled and minified CSS --> 
  <link rel="stylesheet" href="/view/common/css/bootstrap.min.css"> 
  <!--bootstrap 3--> 
  <link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet"> 
  <!--шрифт --> 
  <link rel="stylesheet" type="text/css" href="/view/common/css/common.css?v1" /> 
  <!--общие стили--> 
  <link rel="shortcut icon" href="/view/common/img/favicon.ico"> 
  <link rel="stylesheet" type="text/css" href="/view/todo_list/todo_list.css?v1" /> 
  <!--стили todo_list--> 
 
  <meta name="viewport" content="width=device-width, maximum-scale=1.0, minimum-scale=1.0"> 
  <meta charset="utf-8"> 
 
  <title>Ежедневник EveryDay</title> 
</head> 
 
<body> 
 
  <div id="black_fon"></div> 
 
  <div class="container-fluid header clearfix"> 
    <!--шапка сайта--> 
    <img src="/view/common/img/logo.svg" alt="Ежедневник EveryDay" /> 
    <div class="header_info clearfix"> 
      <a href="#"> Выход</a> 
      <p>rpk54@yandex.ru</p> 
    </div> 
  </div> 
 
  <div class="container-fluid todo_list_content clearfix"> 
 
 
    <div class="row add_full_task popup" id="add_full_task"> 
      <!--полная форма добавления задачи--> 
      <div class="back" iddiv="add_full_task">x</div> 
      <h4>Добавить задачу</h4> 
      <div class="row add_container"> 
        <div class=" change_option_window col-xs-12"> 
          <div class="btn-group"> 
            <button type="button" opt="block_1" class="btn btn-default add_full_task_select">Опции</button> 
            <button type="button" opt="block_2" class="btn btn-default add_full_task_select">Доп. опции</button> 
            <button type="button" opt="block_3" class="btn btn-default add_full_task_select">Подзадачи</button> 
          </div> 
        </div> 
 
        <div opt="block_1" class="col-xs-12 task_option  add_full_task_option"> 
          <input type="text" class="form-control" placeholder="Задача" /> 
          <textarea class="form-control" placeholder="Описание" rows="2"></textarea> 
 
          <div class="optionframe"> 
            <h5>Сроки</h5> 
            <span>Дата: </span><input type="text" class="form-control start_date" placeholder="гггг-мм-дд" /> 
            <a href="#">диапазон...</a> 
            <br> 
            <span>Время: </span><input type="text" class="form-control start_time" placeholder="__:__" /> 
            <a href="#">диапазон...</a> 
            <br> 
            <select class="form-control"> 
              <option>не повторять</option> 
              <option>повторять каждый день</option> 
              <option>повторять еженедельно</option> 
              <option>повторять раз в месяц</option> 
              <option>повторять раз в год</option> 
            </select> 
          </div> 
        </div> 
        <!--end task_option основные опции--> 
        <div opt="block_2" class="col-xs-12 task_else_option add_full_task_option"> 
          <div class="optionframe"> 
            <h5>Приоритет</h5> 
            <select class="form-control"> 
              <option>нет</option> 
              <option>неважный</option> 
              <option>средний</option> 
              <option>важный</option> 
              <option>сверхважный</option> 
            </select> 
            <h5>Контекст</h5> 
            <select class="form-control"> 
              <option>нет</option> 
              <option>выезд</option> 
              <option>звонок</option> 
              <option>встреча</option> 
              <option>за компьютером</option> 
            </select> 
            <h5>Адрес</h5> 
            <input type="text" class="form-control" placeholder="Адрес" /> 
          </div> 
        </div> 
        <!--end task_else_option дополнительные опции--> 
        <div opt="block_3" class="col-xs-12 add_undertask add_full_task_option"> 
          <div class="optionframe clearfix"> 
            <h5>Добавить подзадачу</h5> 
            <input type="text" class="form-control" placeholder="подзадача" /> 
            <input type="text" class="form-control" placeholder="подзадача" /> 
            <input type="text" class="form-control" placeholder="подзадача" /> 
            <button type="button" class="btn add_undertask_btn">+</button> 
          </div> 
        </div> 
      </div> 
      <!--end add_container--> 
 
      <div class="col-xs-12"> 
        <button class="btn btn-success">Добавить</button> 
        <button class="btn btn-primary">Отмена</button> 
      </div> 
    </div> 
 
    <div class="todo_list "> 
      <!--контейнер со списком задач на выбранную дату--> 
      <div class="block_header clearfix"> 
        <!--шапка контейнера с кнопками--> 
        <p><span id="top_date">Текущая или выбранная дата</span></p> 
        <div class="todo_buttons"> 
          <button class="btn btn-primary btn-sm substract_day_btn"> 
            <span class="btn_ico prev_ico"></span> 
          </button> 
          <button class="btn btn-primary btn-sm plus_day_btn"> 
            <span class="btn_ico next_ico"></span> 
          </button> 
          <button class="btn btn-success btn-sm task_ico_btn open_popup" iddiv="add_full_task" title="Добавить задачу, группу задач"> 
            <span class=" task_ico"></span> 
          </button> 
          <button class="btn btn-success btn-sm open_quick_task_block" lock="open" title="Добавить быструю задачу"><span 
              class="btn_ico plus_ico"></span> 
          </button> 
          <button class="btn btn-btn-default btn-sm">Меню </button> 
        </div> 
      </div> 
      <!--end block_header--> 
 
      <div class="add_quick_task "> 
        <!--блок добавления быстрой задачи--> 
        <table> 
          <tr> 
            <td><input type="text" class="form-control quick_time" title="время в формате чч:мм" maxlength="5" 
                placeholder="__:__" /></td> 
            <td class="td_quick_name"><input type="text" class="form-control quick_name" placeholder="Быстрая задача" /></td> 
            <td><button class="btn add_quick_btn"><span class="btn_ico plus_black_ico"></span></button></td> 
          </tr> 
        </table> 
      </div> 
      <!--end add_quick_task--> 
      <div class="todo_content"> 
        <!--список задач по дате todoContent(task_list, todo_date)--> 
 
        <ul class="hard_task list-group"> 
          <!--контейнер дляжесткихх задач listTask(task) todoContent(task_list, todo_date--> 
        </ul> 
 
        <ul class="flexible_task list-group"> 
          <!--контейнер для гибких задач listTask(task) todoContent(task_list, todo_date--> 
        </ul> 
      </div> 
      <!--end todo_content--> 
    </div> 
    <!--end todo_list--> 
    <div class="calendar_content"> 
      <!--блок с календарем--> 
      <div class="block_header clearfix"> 
        <p>Календарь</p> 
      </div> 
      <div id="calendar"></div> 
    </div> 
    <!--end calendar--> 
    <!--блок списка задач--> 
 
 
  </div> 
  <!--end todo_list_content--> 
 
 
 
  <script src="/view/common/js/jquery-3.3.1.min.js" defer></script> 
  <!--jquery --> 
  <script type="text/javascript" src="/view/common/js/jquery.maskedinput.min.js" defer></script> 
  <!--jquery маска ввода--> 
  <script type="text/javascript" src="/view/common/js/cookie.js" defer></script> 
  <!--ФУНКЦИИ ДЛЯ КУК--> 
  <script type="text/javascript" src="/view/common/js/common.js?v1" defer></script> 
  <!--общие скрипты--> 
  <script type="text/javascript" src="/view/common/js/calendar.js?v1" defer></script> 
  <!--скрипт календаря--> 
  <script type="text/javascript" src="/view/todo_list/js/todo_list_block.js?v1" defer></script> 
  <!--скрипт todo_list--> 
</body> 
 
</html>

  1. Best Practice это все ссылки на js файлы ставить в конец <body>
  2. Во время тестирования заметил что вылетают ошибки по javascript иногда, и причиной этого является async для загрузки скриптов. Заменил на defer, чтобы гарантировать правильный порядок загрузки. Детальнее
READ ALSO
ES6 Проблема наследования

ES6 Проблема наследования

У меня есть подкласс Покупатель и класс Витрина, он наследуется от класса Пользователь, те

183
Не подключается Infinite Scroll

Не подключается Infinite Scroll

Несколько часов пытался внедрить Infinite Scroll в блогеЦель простая, главная страница слишком длинная, хочется, чтобы она подгружалась постепенно

165
Проблема с кнопкой &ldquo;Показать еще&rdquo; на Wordpress [закрыт]

Проблема с кнопкой “Показать еще” на Wordpress [закрыт]

Делаю кнопку "показать еще" в шаблонеВсе подключил, кнопка вроде срабатывает, но анонсы не раскрываются

160
Почему не работает jsonp?

Почему не работает jsonp?

Не получаю ответа от сервера, в консоли только warning Cross-Origin Read Blocking (CORB) blocked cross-origin Собственно вот код

135