Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 09.06.2018, 14:30
Аспирант
Отправить личное сообщение для Evgeny_Dedov Посмотреть профиль Найти все сообщения от Evgeny_Dedov
 
Регистрация: 14.07.2013
Сообщений: 32

Три успешных запроса статус 200.
В консоле:
Request failed: url "/js/admin/content_func.js?_=1528540673657" status "200"
Ответить с цитированием
  #22 (permalink)  
Старый 09.06.2018, 14:54
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

А так?
$.when.apply(undefined, deferreds).then(function(){
    if(clb && $.isFunction(clb)) clb();
}, function(jqXHR, textStatus) {
    console.log('Request failed: url "' + this.url + '" status "' + jqXHR.status + '" statusText "' + jqXHR.statusText + '" textStatus "' + textStatus + '"');
});
Ответить с цитированием
  #23 (permalink)  
Старый 09.06.2018, 15:17
Аватар для Белый шум
Профессор
Отправить личное сообщение для Белый шум Посмотреть профиль Найти все сообщения от Белый шум
 
Регистрация: 19.01.2012
Сообщений: 498

https://api.jquery.com/jquery.ajax/#data-types
Цитата:
If script is specified, $.ajax() will execute the JavaScript that is received from the server before passing it on to the success handler as a string.
Наверняка в самом скрипте синтаксическая ошибка...
Ответить с цитированием
  #24 (permalink)  
Старый 09.06.2018, 15:39
Аспирант
Отправить личное сообщение для Evgeny_Dedov Посмотреть профиль Найти все сообщения от Evgeny_Dedov
 
Регистрация: 14.07.2013
Сообщений: 32

Да, действительно дело в скрипте...
Только там не синтаксическая ошибка, а он был настроен на авто запуск функции. Прилетает объект модуля:
WKCMS.CONTENT = (function(){

	var varNameClass = '/admin/content/index/';

	// Публичные методы
	var publicMethod = {
		init : init,
		viewPages : viewPages,
		newPageForm : newPageForm
	}

	function init(){
...
...
...
}

...
...
...
})();
$(function(){
	WKCMS.CONTENT.init();
})

Вот без этих строк работает:
$(function(){
	WKCMS.CONTENT.init();
})


Бля, качеля двухдневная... Спасибо за ответы. И кто нибудь может пояснить данное поведение.
Ответить с цитированием
  #25 (permalink)  
Старый 09.06.2018, 16:05
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Белый шум,
Всё верно, вангую что textStatus равен "parsererror".

Сообщение от Evgeny_Dedov
И кто нибудь может пояснить данное поведение.
Что не понятного, вроде всё уже объяснили? content_func.js имеет parsererror поэтому запрос провалился. jQuery выполняет скрипт через $.globalEval(codeString), вызовите с текстом файла $.globalEval("content_func.js_content") и увидите ошибки.

Последний раз редактировалось Rise, 09.06.2018 в 16:18.
Ответить с цитированием
  #26 (permalink)  
Старый 09.06.2018, 16:10
Аспирант
Отправить личное сообщение для Evgeny_Dedov Посмотреть профиль Найти все сообщения от Evgeny_Dedov
 
Регистрация: 14.07.2013
Сообщений: 32

Там нет парсееррор, Если скрипт добавляется на стр. не ajax'ом
Ответить с цитированием
  #27 (permalink)  
Старый 09.06.2018, 16:29
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

А как добавляется, в какой последовательности? В такой последовательности нужно и ajax'ом делать, а у вас получается одновременная загрузка, кто-то раньше подгрузится, кто-то позже, а должно быть так 1-й загрузили, успешно? грузим 2-й, успешно? 3-й и тд.
Ответить с цитированием
  #28 (permalink)  
Старый 10.06.2018, 06:19
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Да, получается $.when() не обеспечивает порядка выполнения обещаний. Последовательная загрузка скриптов, вроде работает правильно:
function getScripts(urls, done, fail) {
    var chain = $.when();
    $.each(urls, function (i, url) {
        chain = chain.then(function () {
            return $.getScript(url);
        });
    });
    chain.then(done, fail);
}

getScripts(['1.js', '2.js', '3.js'], function () {
    console.log('done:', 'all');
}, function (xhr, status) {
    console.log('fail:', this.url, xhr.status, status);
});

/*

1.js "var js1 = 'js1'; console.log(js1);"
2.js "var js2 = 'js2'; console.log(js1, js2);"
3.js "var js3 = 'js3'; console.log(js1, js2, js3);"

output:
  js1
  js1 js2
  js1 js2 js3
  done: all

2.js "var js2 = 'js2'; console.log(js1, js2, js3);"

output:
  js1
  fail: 2.js?_=1528600631808 200 parsererror

*/
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли так использовать callback функции? Denwf Node.JS 2 14.03.2017 10:20
ng-template - Как добавить несколько шаблонов в один тег посредство ng-click A1x1On2015 Angular.js 0 02.02.2016 18:13
Автоматическое открытие модального окна через несколько секунд Galyanov Элементы интерфейса 2 04.07.2015 14:26
Несколько аякс запросов. Склеить данные. ANAGAMA AJAX и COMET 2 04.03.2015 18:01
hover - несколько элементов как один megapup Events/DOM/Window 3 28.10.2010 20:06