У меня есть приложение ExtJs, которое загружает довольно много javascript-файлов.Это приводит к большим накладным расходам, и, следовательно, мы теперь загружаем файлы javascript с использованием Ajax.
Таким образом, когда пользователь нажимает кнопку, тогда файл javascript, содержащий функцию, связанную с кнопкой, загружается с использованием Ajax следующим образом:
Ext.Ajax.request({
url:'filePath',
success:function(response){
eval(response.responseText);
functionAssociatedWithButton();//Calling here the function associated with button
},
failure:function(){
return;
}
});
functionAssociatedWithButton();//Calling here the same function throws an error of function being undefined
Проблема в том, что эта функция - functionAssociatedWithButton () - которая присутствует в файле JS, загруженном с использованием Ajax, доступна и выполняется только в функции успеха запроса Ajax.
Но если мы попытаемся получить доступ к этой функции в любом другом разделе скрипта, то движок JS выдаст ошибку - функцияAssociatedWithButton () не определена.
Как могла бы такая функция, которая присутствует вфайл JS, загруженный с помощью Ajax, будет доступен в остальной части скрипта?
Я пытался использовать 4-й вариант , предложенный здесь - но это тоже не решило проблему.
Может ли кто-нибудь пролить свет на это.
Заранее спасибо.
PS: Полный сценарий написан внутри функции onReady ExtJS.Кроме того, учитывая возможность того, что Ajax не мог быть загружен функцией time, вызывается где-то еще, я попробовал этот случай, вызвав функцию после завершения загрузки Ajax (используя isLoading () и setTimeOut ()), но даже когда Ajax имеетПосле завершения загрузки функция распознается только в функции успеха Ajax и не распознается где-либо еще в скрипте.