Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Посмотрите на веб окна (https://javascript.ru/forum/project/7250-posmotrite-na-veb-okna.html)

limonad 10.02.2010 13:53

Kolyaj,
ну а как еще можно показать содержимое другой страницы внутри окна?

Kolyaj 10.02.2010 14:06

А зачем их хранить как полноценные страницы, если они ими не являются?

B~Vladi 10.02.2010 18:14

limonad, замени фреймы AJAX-ом.

Заметил одну интересную вещь:
если при драге ничего больше не делается, кроме установки left и top (ну и аналогичных вещей) - браузер пытается оптимизировать рендеринг путем уменьшения fps. Как итог - тормоза.
Таблетка - принудительный reflow. Необходимо обратиться к любому из свойств (любого элемента):
innerWidth, innerHeight (как вариант).

Необходимо только протестить, какие параметры элемента влияют на скорость вычисления размера (и влияют ли вообще).

limonad 10.02.2010 18:58

Попробовал reflow, рендеринг вырос до 0.12. Нашел кое-что по теме рендеринга: http://webo.in/articles/all/2009/31-...flow-relayout/ . Правда и там не всему можно верить. Например, там написано, что так делать плохо:
el.style.left = left + "px";
el.style.top  = top  + "px";

лучше мол так:
el.style.cssText += "; left: " + left + "px; top: " + top + "px;";

я попробовал, второй вариант значительно медленнее работает.

limonad 10.02.2010 19:05

Понимаю что ajax будет рисоваться быстрее, но использовать его не хочется. Ведь могут быть страницы с неродного домена или например ссылки на страницах (как они будут тогда работать).

B~Vladi 10.02.2010 19:52

Цитата:

Сообщение от limonad
Попробовал reflow, рендеринг вырос до 0.12

За-то тормозов нет.
Цитата:

Сообщение от limonad
Ведь могут быть страницы с неродного домена или например ссылки на страницах (как они будут тогда работать).

Сайт в сайте? Может не стоит так далеко уходить?
Цитата:

Сообщение от limonad
лучше мол так:

Аха, я тоже читал. Может попробовать менять margin?

B~Vladi 10.02.2010 19:57

Да, забыл. В ИЕ8 рендеринг медленнее, чем в прошлых версиях (в 6 самый быстрый). Можно перевести его в режим ИЕ7 - помогает.

limonad 10.02.2010 20:10

Что вы думаете о такой идее? При старте драга из divа содержащего фрейм запомнить в какой-то пременной его innerHTML и тут-же в div записать innerHTML=''. А при окончании драга вернуть в div то, что запомнили. (но тут наверное может потеряться содержимое фрейма если там был сделан переход по ссылкам, да и скрол потерятся если был.). Может есть еще какой-то вариант весь этот узел с фреймом убрать куда-то на время переноса так, чтобы он не пересчитывался и не рендерился? Подскажите.

B~Vladi 10.02.2010 20:18

Цитата:

Сообщение от limonad
Что вы думаете о такой идее?

Не прокатит: потеряются все обработчики событий. Содержимое можно просто скрывать или перенести в другое место: эффект тот-же.

limonad 10.02.2010 20:23

B~Vladi, содержимое скрывается итак. Я хотел бы избавится от фрейма вообще на время драга. Все таки без фреймов быстрее работает. А обработчики мне для фрейма не нужны, их у него нет. Как бы удалить этот фрейм на время из DOMa.


Часовой пояс GMT +3, время: 17:26.