2013-12-12 3 views
0

Я нахожусь в процессе создания одностраничного веб-приложения с дружественными URL-адресами. Например, для чата вы можете запросить /chat/roomname или /chat/roomname2 для подключения к другому чату. Так как это SPA, оба из них приведут к одному и тому же содержимому HTML.Можно ли кэшировать HTML-страницу так, чтобы ее можно было запрашивать из нескольких URI?

Можно ли указать браузеру кэшировать обе страницы как одну страницу (например, в/chat/roomname будет также кеш/chat/roomname2 в браузере) или что-то, что даст аналогичный эффект? Таким образом, содержимое HTML может быть большим и должно быть загружено только один раз.

В качестве альтернативы я мог бы сделать/#/chat/имя комнаты или подобное, хотя я бы предпочел не делать этого, если это возможно.

+0

Как насчет изменения структуры URL-адреса в '/ chat ?namename = 1'. Это будет кешировать '/ chat', и тогда у вас будет гибкость в изменении имен комнат. – srquinn

+0

Обычно это обрабатывается кодом на стороне сервера, это не кэширование, которое вам нужно, это просто перенаправление URL. – zzzzBov

+0

@zzzzBov, это не то, что я ищу. Было бы странно странно, если бы/chat/roomname2 перенаправлялись в/chat/roomname, даже если они не одно и то же. –

ответ

2

Отдельные пути - это разные вещи для браузера. Даже те же страницы с разными параметрами запроса обрабатываются по-разному (следовательно, метод «перебора кеша»). Однако ...

Вы можете:

  • Off-нагрузки все скрипты на внешние сценарии, чтобы браузер кэширует их отдельно от страницы.
  • Сделайте то же самое с CSS.
  • Держите страницу до минимума.
  • Если ресурсы (скрипты, стили, изображения) не будут изменены в течение длительного периода времени, вы можете установить для них более длительный срок действия.
  • Вместо того чтобы загружать весь макет с помощью HTML, вы можете использовать AJAX для обработки в шаблонах. Таким образом, эти запросы макета также кэшируются. Попросите JS собрать их, когда они понадобятся.

В конце ваши страницы будут лишены всех JS, CSS и разметки, которые могут быть отправлены и собраны с использованием JS. Это сделает страницу более легкой, чем обычно. Вы можете сделать это еще дальше, уменьшив скрипты и стили, сжимая изображения, сжимайте HTML и прочее.

+0

Я должен был немного уточнить. Сам HTML полностью статичен - все, что должно быть загружено, выполняется через XHR, WebSocket, localStorage и т. Д. –

+0

@KMorrow update – Joseph

Смежные вопросы