Эта тема на forum.dklab.ru


Владимир Гаврилов: Загузка динамических страниц во фрейм. Проблема
Здравствуйте, друзья. Ответа на свой вопрос не нашел, поэтому и спрашиваю. Итак, есть документ, состоящий из фреймов. В левом фрейме - древовидный список (меню), в правом - контент. Оба документа создаются динамически (PHP, JS). Нас интересует "левый" кадр. Дело в том, что после загрузки документа этот список работает не так оперативно, как должен, т.е. "подтормаживает": иконка "+" меняется на "-" не мгновенно, а с видимой задержкой. Иконки выпадающего списка появляются не все сразу, а "прорисовываются" одна за другой. Комментарии к проблеме:
1) Если обновить содержимое [только] этого фрейма, то все начинает работать прекрасно, без задержек. (Зато если обновить всю страницу (фреймсет) целиком - история повторяется!)
2) На локальном сервере (в Денвере короче) этой проблемы нет.
3) Если загрузить этот список без фрейма, как обычный док-т - тоже никаких задержек.
4) Пробовал использовать буферизацию вывода (ob_start и иже с ними) - не помогает.
Такое чувство, что этот список "недозагружается" и поэтому так все происходит. В строке состояния даже пишется: Осталось:20 (например). Но самое обидное, что это "осталось" никуда не девается, сколько ни жди...
В общем, если кто-нибудь знает, как решить эту досадную проблему и предложит идею, буду очень признателен.
Извините, если вопрос показался вам дилетантским.
Константин Жинько [tIT]:
Дело в том, что после загрузки документа этот список работает не так оперативно, как должен, т.е. "подтормаживает": иконка "+" меняется на "-" не мгновенно, а с видимой задержкой
То есть дерево написано на JS?

На локальном сервере (в Денвере короче) этой проблемы нет.
Может у хостера проблемы с этим делом? В смысле с хостингом *)

буферизацию вывода (ob_start и иже с ними) - не помогает
А чем она по-Вашему должна была помочь?

Посмотрите, что в логах, попробуйте telnet'ом (хотя он под виндой битый, лично я советую программу max spade -- более универсальна) и выясните, на какой строки скрипт (сервер, браузер?) подвисает.
WingedFox:
Владимир Гаврилов
Приведите кусок готового дерева здесь или дайте ссылку на страницу.

Вполне возможно, что дерево у Вас очень большое, а IE выкачивает каждую картинку отдельно.
Локально запросы к картинкам проходят мнгновенно.

После обновления фрейма картинки не перегружаются, если таймаут был небольшим.

В общем, было бы неплохо посмотреть на сам скрипт.
Владимир Гаврилов: Загузка динамических страниц во фрейм. Проблема
Спасибо за участие. Ссылки на страницу и скрипт соответственно:
http://www.fermo.ru/catalog/
http://www.fermo.ru/catalog/jscript/tree.js
идея дерева основана на неупорядоченном списке <UL>
здесь скрипт не стал "вываливать".
Дмитрий Котеров: img preload
Preload надо делать для картинок, чтобы они в кэш браузера записались еще до отображения страницы.

http://forum.dklab.ru/viewtopic.php?p=49039#49039
http://htmlcoder.visions.ru/JavaScript/?27

А событие разворота ветки дерева по плюсу - на onmousedown, а не на onclick.
Юрий Насретдинов:
Владимир Гаврилов
Кстати, кто будет под Mozilla (ну и в принципе Опера) смотреть и отлаживать =)?
WingedFox:
Владимир Гаврилов
Воспользуйтесь идеями отсюда:

http://www.xs4all.nl/~peterned/
http://www.xs4all.nl/~peterned/csshover.html
http://www.naarvoren.nl/artikel/hover_cssmenu.html

Более аккуратные решения, кроме того - более кросс-браузерные.

PS: Проблем с торможением загрузки/открытия нет вообще.
Владимир Гаврилов:
Большое спасибо всем, кто помогал.

Эта тема на forum.dklab.ru