Кэшировать статические HTML-страницы с помощью переменных get

0

У меня есть сайт с большим количеством iframe, как это:

<iframes src="expamle.com\page.html?var=blabla&id=42" scrolling="no"></iframe>

Мне нужно изменить var=blabla&id=42 для каждого iFrame. Эти параметры используются в javascript iframe. Есть ли способ кэшировать (давать подсказки браузеру) page.html (статический) один раз для всех переменных?

Я должен использовать iframe, так как хочу обновить этот код (с другого сервера) и запустить его в другой области.

  • 0
    Вы хотите изменить переменные во всех фреймах сразу?
  • 0
    Вы можете уточнить - находится ли page.html в том же домене, что и родительская страница?
Теги:
caching
iframe

3 ответа

1
Лучший ответ

Нет. Любое изменение строки запроса представляет собой отдельный ресурс для браузера.

Однако вы можете достичь этого эффекта, если можете внести небольшие изменения в page.html. Если вы напишете это так:

<iframes src="expamle.com\page.html#var=blabla&id=42" scrolling="no"></iframe>

Обратите внимание на использование символа # - что ключ там.

Строка запроса становится просто "page.html" и будет кэшировать этот путь. Тем не менее, Javascript этой страницы будет иметь доступ к переменной document.location.hash, которая будет содержать " var=blabla&id=42 ". Он будет записан как одна строка, но это не должно быть сложно разобрать. Некоторые библиотеки даже используют этот тег для передачи параметров в режиме реального времени в iframe для совместимости с IE6.

0

Если он используется только в javascript, но на самом деле только серверная сторона с 1 страницей не используется? Но используйте #, он будет рассматривать его как одну и ту же страницу, но на разных анкерных счетах. Так что если test.com/#foo кэшируется, то test.col/# bar тоже (та же самая страница, разные точки привязки)

-1

Вы можете обновлять URL-адреса фреймов из кода:

var fr = document.getElementsByTagName('iframe');
var sites = "1.com,2.com".split(",");

for(var x=0;x<fr.length;x++) {
     document.getElementsByTagName('iframe')[x].src="http://"+sites[x];
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню