Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   взаимодействие 2 скриптов (https://javascript.ru/forum/jquery/39110-vzaimodejjstvie-2-skriptov.html)

Faab 16.06.2013 16:54

взаимодействие 2 скриптов
 
Ситуация такая: был один большой скрипт. Работал, но что то мне НЕ нравилась его производительность. Решил создать пару "мелких" скриптов и подгружать каждого там где он нужен.

Конечно есть главный скрипт, который "рулит". Вот например при клики в divA загрузился кусок HTML:

$("#divA").load('/ajax/loadHTML');


Загруженный HTML кусок содержит свой внутренний "мелкий" JS скрипт:

<script type="text/javascript">

$(document).ready(function(){
   // тут я работаю и всё хорошо.
});
</script>


Но когда в этом "мелком" скрипте я уже всё сделал и записал все данные в сессию PHP, как мне заново загрузить в divA следуюший "мелкий" скрипт?

Например был скрипт создания юзера. Но из за его размера, я разбил его на Создани_шаг1, Создание_шаг2, Создание_шаг3. Главный скрипт загрузил скрипт шаг1. Но когда скрипт шаг1 выполнен, как шаг 1 может сообщить что бы загрузился скрипт шаг2. Понимаю что немного запутанно.)

bes 16.06.2013 17:07

http://api.jquery.com/load/
там есть третий параметр - callback-функция, в ней и do it

Faab 16.06.2013 18:48

Так, я немного не понял как использовать callback. Можно пример?

Вот три JS скрипта: mainscript.js , subscripta, subscriptb. Задача что бы из mainscript.js вызвался скрипт subscripta. По завершению subscripta, вызывается subscriptb. Я так понимаю callback надо ставить в mainscript.js и когда скрипт subscripta вернёт, например, true то запуститься скрипт subscriptb? Я правильно понимаю алгоритм работы? Можно самый простой пример, пожалусто.

danik.js 16.06.2013 19:32

Цитата:

Сообщение от Faab
мне НЕ нравилась его производительность

Ты что, биткоины ими майнишь чтоли? Или рендеришь 3D модели?
Вон jquery подгружается одним файлом, и ничего же что там 10 000 строк.
Можешь пояснить что не так с твоей производительностью?


Часовой пояс GMT +3, время: 19:32.