Надеюсь, у кого-то есть хороший ответ на это:
Почему Chrome (14.0) запускает события документа и события загрузки окна при обновлении страницы? Обратите внимание, что я не говорю о том, что происходит, когда загружается новая страница, но до ее загрузки. См. Следующий код:
<form name="form1" method="post" action="tmp.aspx?a=1" id="form1">
<script type="text/javascript">
$(document).ready(function () { console.log('document/ready' + new Date()); });
$(window).load(function () { console.log('window/load' + new Date()); });
</script>
<a href="tmp.aspx?a=1">tmp</a>
</form>
При первом посещении страницы я получаю два выхода на консоли, один для документа/готовый и один для окна/загрузки. Когда я обновляю страницу, еще два быстро выводятся, и сразу после этого еще два (с нового просмотра страницы). Если вместо этого я просто перейду по ссылке (tmp.aspx), которая сразу возвращается на ту же страницу, этого не произойдет.
Я уверен, что для этого есть хорошее объяснение.
Привет!
EDIT: Дополнительные вызовы $(document).ready() и $(window).load() сделаны до того, как эта страница обновилась. Поэтому, когда я сначала загружаю страницу, методы их вызывают один раз, затем я нажимаю "Обновить" и, прежде чем страница перезагрузится, методы вызываются снова. После этого, когда страница только что была перезагружена, методы называются ТРЕТЬЯМ временем.