Перекрестное повторное использование сценария - PullRequest
0 голосов
/ 16 ноября 2010

У меня есть приложение, работающее в HTA (HTML-приложение MSFT), которое снова и снова использует один и тот же файл сценария во всех кадрах;так как это местами достигает 9 и когда приложение настроено на различных серверах с кэшированием, настроенным на немедленное истечение срока, я пытаюсь добиться какой-то производительности в этом шарике грязи.способ загрузить основной файл сценария в верхний фрейм, а затем исключить его из фреймов, например

--- TOP WINDOW ----

var MainScript = function(){  return (function(){ all current functions etc here })(); };

--- SUB Frames ----

var FrameScript = top.MainScript;
FrameScript();

И как это повлияет на область окна (будет ли она оставаться в области верхнего окна или находиться в области рамки-окна)

1 Ответ

0 голосов
/ 16 ноября 2010

Простейшим методом, по-видимому, является присвоение подкадру идентификатора, а затем динамическое заполнение его сценарием, загруженным в основной кадр (используя eval для запуска js);

т.е.

|> Родитель (он же TOP Frame)

<script>top.windows = [];</script>
<script id="MyScript">
    var test = function(){ top.windows.push(window); }
</script>

| >> Подкадр Загружает SubSubFrame в IFrame

| >>> SubSubFrame

<script id="SF1">
document.getElementById("SF1").innerHTML = eval(top.window.document.getElementById("MyScript").innerHTML);
test();
</script>

Это работает до 8 и более кадров в пределах доверенного домена (в .hta вы устанавливаете application = true для фреймов для этого)

Я использовал top.windows [], чтобы я мог проверить область действия. (введите его в console.log (top.windows) в firebug)

Намиляющие и глубокие; Google делает что-то похожее для задержки загрузки / выполнения JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...