Показать сообщение отдельно
  #10 (permalink)  
Старый 16.11.2010, 21:15
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Gvozd Посмотреть сообщение
попробуйте ... history.back() для фрейма перед отправкой формы...
сам не проверял
Трудно представить, что произойдёт в системе, если сделать history.back(). По сути это то же самое, что повторно загрузить в фрейм то, что было загружено шаг назад. Предположим, в фрейм приехала javascript-команда (функция), которая на главной странице открыла окно. Тогда history.back() откроет дубликат такого окна. А зачем?
Но я поработал с history и выявил интересные и странные вещи.
Добавил на главную страницу две кнопки:
<input type=button value="history.back" onclick=history.back();>
<input type=button value="history.length" onclick=alert(history.length);>

и сделал две разновидности скрипта, загружаемого во фрейм:
<script type="text/javascript">parent.f2();</script>

и
<script type="text/javascript">function f1(){}</script>

Первый вызывает функцию из parent-окна, второй вызывает локальную функцию, расположенную внутри фрейма.
Мои наблюдения: (может кто-то и знает, а для меня было новостью, что) при отправке данных с формы history.length доходит до значения 50 и останавливается. То есть, Opera запоминает историю в 50 страниц (на каждой вкладке). Где это число 50 в настройках??
А теперь главное:
При вызове во фрейм второго скрипта history.length вырастает до числа 50, Opera съедает памяти около 10 Mbyte и дальше потребление памяти не увеличивается!
При вызове во фрейм первого скрипта history.length также вырастает до числа 50 и дальше память продолжает расти...
В чём разница? Только в том, что вызывается функция из материнского окна. Вот такая загадка.
Ответить с цитированием