Зачем нужен document.close?
Ребята, объясните, пожалуйста!
Здесь прочёл: http://www.spravkaweb.ru/javascript/...ocument/method "Заставляет Web-страницу немедленно обновить свое содержимое после использования методов write. Метод не принимает параметров и не возвращает значения." ...Собсно уже возник вопрос. Это как понять? document.write сам по себе пишет нечто в документ, обновляет то есть. Зачем ещё document.close добавлять? Чтобы опять обновил? Непонятно. ПОтом я прочёл у Гудмана и Мориссона вот что: "ПОсле почледнего вызова document.write() в сценарии следует использовать метод"document.close() В противном случае может оказаться, что изображения и формы не будут отображаться." Ну эти детали далеки от меня, но мне хотеллось бы просто понять: вот ОБНОВИЛИ мы всё-таки документ с помощью document.write.. Получается, что document.close (close это закрывать значит) мы пишем, что бы на страницу ничего левого и ненужного не лезло. И вот тут стоп! Ведь рекомендуется писать document.close именно после ПОСЛЕДНЕГО document.write! Но, ребята, если это последний вызов, следовательно, на страницу и так ничего не полезет... Извините... |
Ну document.write открывает поток и браузер ждет, может еще что-то надо дописать, иначе, если бы он (write) каждый раз после себя закрывал поток, каждый вызов document.write перезаписывал бы весь документ, а так мы увидим "12" в обоих случаях:
var win = window.open(); win.document.open(); win.document.write("1"); win.document.write("2"); win.document.close(); var win = window.open(); win.document.write("1"); win.document.write("2"); но обрати внимание, что во втором примере браузер так и ждет окончания загрузки документа (тестил в Firefox 3.6, IE8). -------- в Chrome 2-й пример почему-то не работает вообще, в Opera 10.50 индикатор загрузки не отображается. |
Ну да, то есть я увидел, что в первом случае всё быстренько записалось и загрузка окончилась. Предсказуемое поведение. А во втором случае записалось, но загрузка продолжалась.
...А почему она продолжалась? Ну пусть у нас нет document.close Но разве отсутствие document.write (вотрой случай- всего два document.write) не интерпретируется браузером как сигнал к НЕМЕДЛЕННОМУ окончанию загрузки? |
Цитата:
|
Странно это.
Так чему грузиться-то? Я так понимаю, загрузка продолжается, пока интерпретатор интерпретирует document.write Но их больше нет ведь! Какой-то непонятный запас времени создаётся неясно для чего. |
var win = window.open(), i = 0; win.document.write(i); win.document.onkeydown = function () { win.document.write(++i); }; Документ обрабатываться по мере загрузки, а не целиком |
Часовой пояс GMT +3, время: 18:18. |