2013-08-07 2 views
3

Мы используем $ .getScript (url, callback) повсюду. В устранении неполадок очень случайные неопределенные ошибок, я заметил это из документации JQuery:Вызов кода после jQuery getScript выполняет скрипт

«Обратный вызов обжигал после загрузки сценария, но не обязательно выполняется.»

Может ли кто-нибудь предложить общий способ гарантировать, что обратный вызов вызывается после выполнения сценария?

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

Заранее благодарю!

ответ

0

Вы должны иметь возможность сделать это довольно легко, используя getJSON.

http://api.jquery.com/jQuery.getJSON/

Что-то похожее на это следует сделать трюк:

$.getJSON(url , 
    function(data) { 
     //Do something with data here 
     alert(data); 
}); 

EDIT: Ответ по ссылке ниже, что я нахожу наиболее интересным является этот:

$.ajax({ 
    url: url, 
    dataType: 'script', 
    success: success, 
    async: false 
}); 

Это кажется, что отключение асинхронной части ajax сначала выполнит скрипт, затем обратные вызовы, вместо того, чтобы делать их синхронно.

+0

Я считаю, что getJSON и getScript являются сокращением для вызовов $ .ajax с той разницей, что тип данных. getJSON устанавливает dataType = "json" и getScript устанавливает dataType = "script". Так как в нашем случае мы, безусловно, загружаем скрипты, это, похоже, не работает (как проверка работоспособности, которую я пробовал). – Orlando

+0

Вы правы, я полностью неправильно понимаю вашу проблему. По какой-то причине я думал, что ваша проблема связана с данными, которые вы использовали в ваших сценариях. Я думаю, что эта ссылка может быть полезна для вас. Первый ответ включает опрос, как вы упомянули, но, возможно, некоторые из других предложений достигнут того, что вы ищете: http://stackoverflow.com/questions/1130921/is-the-callback-on-jquerys-getscript-unreliable -или-ам-я-делать-что-то-не так – Tricky12

Смежные вопросы