|
|
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
У меня вопрос по поводу возможности с помощью AJAX загрузить JavaScript-функцию и заставить ее работать. Такое вообще возможно? Мне нужно, например, подгрузить в <span> через innerHTML пару контролов - это без проблем. Пускай там кнопка, а у нее onclick прописана ф-я, которую браузер еще не знает - т.е. изначально эта ф-я не присутствовала на странице. Но я знаю, где она, а как загрузить - не знаю. Не знаю даже можно ли. Зачем такое нужно? Например, у меня есть 50 диалогов на странице (ну, например). Все они вместе займут 50 Mb. И моя страница будет грузиться 20 минут, хотя пользователь увидит только 5 диалогов... С AJAX я делаю 1 шаблон и гружу в него что нужно... Но обрабочики кнопок, валидация - как подгрузить это? Вроде JSON как-то позволяет передавать функции, но пример я немогу найти - везде показывают как из PHP перегнать массив строк, это я и без JSON прекрасно могу... -------------------- We are there -------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 01:35 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Неважно, зачем ... часто надо просто подгружать динамический контент, который должен работать на усмотрение девелопера. Если надо установить событийные функции, то не следует устанавливать их в тэге элемента. Надо после страничного контенка в скрипте описать нужную функцию, к примеру: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 02:15 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Подождите, вот это: Код: plaintext А вот это: Код: plaintext 1. 2. 3. 4. И вот в xhr.doPost:load(text) я пишу: Код: plaintext А какая вообще best practise в таких случаях? Как я уже придумал, я заведу себе span невидимый и буду в него грузить ф-ии, которые мне нужны. Ниче так, стремно тока как-то :D И что теперь -------------------- We are there -------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 02:26 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
помоему в этом случае лучше вообще не трогать XMLHttpRequest. Допустим, есть скрипт generate.php, который отдает ответ такого вида: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 04:12 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
H.A.M. с помощью AJAX загрузить JavaScript-функцию и заставить ее работать тынць , тынць , тынць ? _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 09:09 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
illion, +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 09:22 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
H.A.M.Вроде JSON как-то позволяет передавать функцииИ вправду, позволяет Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 11:53 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
illion, я с тобой не согласен ... а если подгружаемых страниц, а значит, и скриптов, десятки? Да и не хочу я, чтобы все это оседало в кеше? H.A.M., подгружай себе скриптов сколько хочешь - у меня сайт на такой подгрузке сделан, все отлично работает; вложенность, когда из подгруженной странички динамически подгружается еще страничка, достигает пяти-шести уровней, да к тому же работа с данными, постоянная динамическая подгрузка списков и таблиц. Единственное, я использую не просто подгрузку скриптов, а подгрузку с выполнением: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 11:55 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Спасибо! Т.е. такая практика, как я понял, распространена и работает успешно, а это не может не радовать ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 12:01 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Вопрос был "помощью AJAX загрузить JavaScript-функцию и заставить ее работать". Это можно и с помощью стандартного реквеста или как illion написала. Код выгладит приблизительно так: Код: plaintext 1. 2. 3. ПС. Это тоже аякс между прочим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 12:06 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
ShSergeПС. Это тоже аякс между прочим.Более того, это кроссдоменный аякс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 12:10 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Нема базара, я с вами согласен. Просто в свое время столкнулся с проблемой, подобной топикстартера. И лучшим решением оказалось не такое, кроссдоменное и т.д., а именно мое - "заточенное" под себя. В любом случае, решать автору ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 13:54 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
IDVsbruckВ любом случае, решать автору ... :) +1. Есть проблема, есть пути решения и есть, как всегда, обстоятельства проекта, автором не описанные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 15:17 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Проекта нету, просто разбираюсь с JS, учу помаленьку. 2illion: способ прост и понятен, но! Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. И есть страничка: Код: plaintext 1. 2. -------------------- We are there -------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 16:01 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
H.A.M.И есть страничка: Код: plaintext 1. 2. Скрипт ведь загружается асинхронно . И при первом нажатии, когда дело доходит до FunctionTwo();, ее ещё нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 16:10 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Смотрите пример illion , сравнивайте, думайте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 16:12 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Т.е. вызов FunctionTwo() тоже должен грузиться. Кстати в этом случае функцию называют "каллбэк-функция". Да и саму такую разновидность аякса называют также. Можно ещё погуглить JSONP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 16:22 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
Серж, а ты, может, подрабатываешь у владельцев технологии JSONP? :) ;) H.A.M., юзай jQuery и будет тебе счастье - и аджакс, и скрипты, и джейсонп - все в одном флаконе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 22:21 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
IDVsbruck, Не хотел я этого слова (JSONP) писать. Знал ведь - прицепишься. Ну да, нравится мне эта штука. Обрати внимание - не я первый начал, а illion, хотя она слово явно и не написала и м.б. ещё меня и обругает, когда проснётся или когда у них там день. Хоть бы разницу в часах написала что-ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2008, 22:36 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
:) :) :) Чтобы ныкаться от нашей злой модераторши? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2008, 00:28 |
|
||
|
XmlHttpRequest - load JS functions
|
|||
|---|---|---|---|
|
#18+
H.A.M., вызов функции при таком раскладе должен находиться в составе подгружаемого скрипта, иначе не подгадаешь момент, когда скрипт уже подгрузился. Согласна, это не всегда удобно, и в тогда лучше использовать способы, основанные на обычных ajax-подгрузках и последующем eval. Если передается только скрипт (некий набор функций), то можно сразу применять eval к responseText, не вставляя его в дивы и спаны, а если есть еще некие вспомогательные данные, то использовать пример IDVsbruck. ShSergeОбрати внимание - не я первый начал, а illion так я специально для тебя старалась, думала "вот Серж почитает, порадуется". Ссылку на тебя было лень искать, особенно местным поиском - вообще атас. ShSergeХоть бы разницу в часах написала что-ли. +12GMT. Впереди планеты всей :-). Хотя еще где-то есть в Океании на островах +13GMT, но там я еще не была. Пока что. IDVsbruck:) :) :) Чтобы ныкаться от нашей злой модераторши? ныкаться бесполезно, я ж все равно нагряну! :-))) П.С. а чё это я "злая"? Хоть убей - не припомню, когда я успела тебе на хвост наступить... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2008, 00:41 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=309&tid=1455470]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 390ms |

| 0 / 0 |
