|
|
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Прошу прощения за, как многим может показаться, ламерский вопрос - но проблема в следующем: JS практически ен знаю, отсюда вопрос! Требуется сделать страничку, в которой будет редирект через указанное время с указанием ошибки и индикацией оставшегося времени до редиректа! Нашел такой код: Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 09:40 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 09:50 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Опс, немного не то :) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 09:52 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
В приведенном примере элементы "waitblock" и "downloadhtml" существуют в документе ДО выполнения функции countdown2(), поскольку скрипт исполняется после их рендеринга. Вы в Ваших документах, видимо, ставите ссылку на скрипт ДО рендеринга (в head секции до body), так? Если да, то поставьте ее ПОСЛЕ рендеринга: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 09:55 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Спасибо! Всен сделал так - в результате заработало: Код: 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. 29. 30. Код: plaintext 1. 2. Что изменить в коде для этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 10:19 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Скрипт находится там где его требуется _выполнить_ Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 10:24 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Только вот зачем второй head ? ;) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 10:27 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Так скорей всего Код: plaintext 1. 2. 3. 4. 5. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 10:31 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
PanoveНаходится в конце документа, а хотелось бы в начале, как положено по спецификации...Что изменить в коде для этого? Можно и так: <html> <head> <title>Untitled Document</title> </head> <body> . . . <script type=text/javascript src="myScript.js"></script> </body> <html> body может содержать script. Главное, чтобы скрипт включался после рендеринга элементов, на которые он ссылается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 10:33 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
М.Голованов PanoveНаходится в конце документа, а хотелось бы в начале, как положено по спецификации...Что изменить в коде для этого? Можно и так: <html> <head> <title>Untitled Document</title> </head> <body> . . . <script type=text/javascript src="myScript.js"></script> </body> <html> body может содержать script. Главное, чтобы скрипт включался после рендеринга элементов, на которые он ссылается. Спасибо огромное! Все прекрасно работает!!! Ну и вдогонку вопрос: так как скрипт не мой, а выдран с сайта, то возникает вопрос в необходимости функции: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 11:06 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
PanoveЧувствую, что она лишняя и для моих целей не требуется, но как вырезать её с сохранением работоспособности скрипта - ума не приложу! Ну, тогда удалите ее. И счетчик заодно за ненадобностью. И вообще весь скрипт. И будет совсем просто: <html> <head> <title>Untitled Document</title> </head> <body> . . . <script type=text/javascript> var timer=setInterval('window.location="./" ',10000); </script> </body> <html> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 11:21 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Не-а! Счетчик все таки нужен... :-) Вопрос в том, так уж необходима эта функция? Если без неё счетчик будет работать - буду резать, если нет - оставлю, нет желания загромождать скрипты недействующим (точнее сказать, бездействующим) кодом! А что до простого варианта - это можно было и на PHP сделать гораздо проще, но хотелось бы уведомлять посетителя о оставшемся времени до перенаправления! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 11:29 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
PanoveНе-а! Счетчик все таки нужен... :-) Тогда так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 12:28 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
так и тянет Вас скрипт в конец документа запихать. НЕ НУЖНО : размещать скрипты и head в конце. НУЖНО : делать вызов функции в положенном месте в положенное время. В данном случае - убрать вызов countdown2() из подключаемого модуля и сделать этот вызов на window.onload, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 13:12 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Panove НО теперь из этого кода не могу выдернуть JS, чтобы разместить его отдельным файлом и сделать include в другие страницы - после выноса кода JS перестает работать конструкция! Кто может помочь с проблемой - буду очень благодарен!!! Почему перестает работать JavaScript при выносе в отделный файл - в 99% случаев по следующей причине: inline скрипты выполняются по ходу загрузки BODY документа в том месте, где они встретились. Поэтому Вы например мождете спокойно использовать document.write() и формировать текст в ситиле сервернных языков. Скрипты загружаемые по scr загружаются в произвольном порядке. Чтобы гарантировать что на момент вызова функции из такого скрипта пользуются следующими способами 1. Вызывают функции в window.onload или в body.onload или 2. Задают тег SCRIPT в HEAD или 3. Пользуются синхронными Аякс-запросами. HEAD должен быть один и находится в голове документа. Сколько ни пиши второй head - это все равно будет body ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 19:15 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
apapacyСкрипты загружаемые по scr загружаются в произвольном порядке Поразительные вещи Вы пишете. Не могли бы Вы привести пример серверного лога, в котором запросы на скрипты следовали бы в порядке, отличном от того, в каком эти скрипты включены в HTML? Я настолько озадачился, что не поленился понажимать F5 в нескольких страницах, которые содержат ссылки на несколько .CSS и .JS. Как написано, так и запрашивается. Да иначе и быть не может (к примеру, в любимой мною библиотеке Yahoo!UI порядок загрузки скриптов вследствие зависимостей наследования и использования имеет критическое значение, и если бы скрипты грузились как попало, ничего бы не работало). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 19:47 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Ваш вопрос уже содержит ответ. При чем тут серверные логи? Вам важно когда сервер отдаст полностью ответ. Тут все статистика. Браузер отправляет запросы в сеть в порядке 1,2,3,4,5... При путешествии по сети некоторые из этих запросов могут попасть в разные пакеты, перезапрашиваться, обгонят друг друга. Хотя вероятность того, что в Интранет или на localhost прийдут запросы в порядке отличном от 1,2,3,4,5... мала. Это и показал Ваш серверный log. Но теперь пойдет обработка на сервере. Скрипты бывают разного размера. Нкоторые скрипты генерятся серверным кодом и обращаются к БД, другим хостам и т.п., так что такие скрипты могут уже с сервера уходить не в том порядке 1,5,3,4,5... Теперь эти скрипты попадают обратно в браузер например в порядке 1,3,5,4,2... И браузер будет выбирать их в том порядке в котором они поступают с сервера. Но тут еще не все. На самом деле в очереди могут оказаться несколько скриптов и тут как говорят IE их выполняет в порядке случайном, а все оствальные в порядке поступления. Во всяком случае на порядкок не следует ориенироваться. Существуют просто некоторые точки 1. HEAD и 2. onload которые гарантируют, что скрипт уже точно загрузился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 20:12 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Дискуссия конечно развивается интересная! Но простят меня "товарищи по перу" за тупость - я сам не в состоянии вынести код и разместить его в windows.onload! Пробовал по всякому, все безуспешно... Может кто поможет готовой реализацией кода? Буду очень принателен! Увы, ну не спец я в JS... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 20:23 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
apapacyВо всяком случае на порядкок не следует ориенироваться No comments. Мне бы Вашу уверенность. Писатели библиотек, конечно, все лохи и ламеры. Фантазируйте дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 20:24 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
PanoveМожет кто поможет готовой реализацией кода? Я привел выше код: http://www.sql.ru/forum/actualpost.aspx?bid=61&tid=581530&mid=6003826&p=1&act=quot. Он точно будет работать. Впрочем, дело Ваше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 20:27 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
М.Голованов PanoveМожет кто поможет готовой реализацией кода? Я привел выше код: http://www.sql.ru/forum/actualpost.aspx?bid=61&tid=581530&mid=6003826&p=1&act=quot. Он точно будет работать. Впрочем, дело Ваше. Да, спасибо! Код работает! Проверено! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2008, 22:42 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
М.Голованов apapacyВо всяком случае на порядкок не следует ориенироваться No comments. Мне бы Вашу уверенность. Писатели библиотек, конечно, все лохи и ламеры. Фантазируйте дальше. да, профессиональной уверенности Вам бы не помешало. Или хотя бы умения читать и анализировать сказанное. А то пока что пахнет только глухой упертостью. Писатели библиотек конечно не лохи и не ламеры, и учитывают особенности подгрузки скриптов (если это качественная библиотека). М.Голованов PanoveМожет кто поможет готовой реализацией кода? Я привел выше код: http://www.sql.ru/forum/actualpost.aspx?bid=61&tid=581530&mid=6003826&p=1&act=quot. Он точно будет работать. Впрочем, дело Ваше. решение будет работать, но оно дубовое. Больше никак не могу обозвать вызов функции и работу с dom-объектами страницы вне всяких функций прямо в подключаемом скрипте. Да и константные наименования id'ов и параметры в функциях должны встречаться как можно реже, иначе функция практически одноразовая. Итак, выносим функцию из страницы в отдельный файл: counter.js Код: plaintext 1. 2. 3. 4. 5. Код: 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. или так (хотя xthml-доктайпы не позволяют иметь script в body): Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 01:04 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
М.ГоловановФантазируйте дальше. Продолжаю... Я действительно не исслеждовал глубоко этот вопрос и благодарен Вам за то, что Вы наконец помогли это сделать мне. При загрузке скриптов в обычном стиле. то есть Код: plaintext 1. 2. 3. все браузеры кроме Сафари терпеливо ждут загрузки и выполнения предыдущего скрипта. (то есть Вы пости правы, хотя YUI учитывает этот момент). При загрузке скриптов а-ля Серж Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Терпения не хватает у ИЕ. Можете протетсировать http://test1234.ho.ua/test/test_script.html?ww=44566 Там скрипт script0.js выводит алерт со своимименем. А скрипт script1.php делает то же самое но со sleep(15) Opera же терпеливо ожидает и в этом случае. Остальные браузеры тестировать неохота. Так как приведенного кода достаточно для того, чтобы не ориентироваться на порядок загрузки скриптов. (За что и нравится мне форум, что заставляет сделать порой отложенные в долгий ящик работы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 01:28 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
Кстати я был почти уверен в правоте так как порядок загрузки и выполнения скриптов зависит от параметра элемента SCRIPT defer, который является факультативным по спецификации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 01:32 |
|
||
|
Вынос кода JS для include
|
|||
|---|---|---|---|
|
#18+
illionИтак, выносим функцию из страницы в отдельный файл: Спасибо большое, после небольшой модернизации подходит идеально! Пример, предоставленный М.Головановым тоже пригодился! Всем спасибо за помощь и разъяснения по ходу дискуссии - было познавательно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2008, 02:27 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=325&tid=1456105]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
4ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 327ms |

| 0 / 0 |
