Angularjs отрисовывает пароли из браузера или с веб-сервера

0

При рендеринге приложения angularjs загружаются частичные файлы с веб-сервера или из браузера. Когда я пытаюсь отлаживать использование firebug, я могу увидеть запрос, сделанный на веб-сервер для файла частичных файлов html. Мое предположение заключается в том, что частичный файл всегда запрашивается с веб-сервера. Правильно ли я понимаю?

Кроме того, есть ли способ, в котором браузер загружает все данные приложения html в браузер и затем загружает частичные файлы из браузера без какого-либо сетевого вызова? Возможно ли это, и есть ли возможность сделать это в AngularJs? Пожалуйста, дайте мне знать.

  • 0
    что вы имеете в виду from the browser ? Кеш?
  • 0
    да из кеша браузера.
Теги:
angular-ui-router
single-page-application

2 ответа

1

Когда вы запрашиваете угловую страницу "smth/smth2.html", сначала проверяете, находится ли этот шаблон в $ templateCache, если он не представлен. HTTP-запрос сделан. Если он будет загружен с сервера или из кеша браузера, зависит от заголовков страниц - по умолчанию он будет загружен из кеша, если он представлен. После того, как шаблон запроса добавлен в templateChache.

Таким образом, правильный способ загрузки всех шаблонов сразу заключается в том, чтобы поместить их в $ templateCache.

Вы можете сделать это напрямую (так что у вас не будет *.html файлов), или вы можете использовать инструменты для создания своего проекта, т.е. Grunt. (Инструмент преобразует ваши файлы *.html в *.js)

Пример - то, что мы имеем в нашем проекте:

  1. Структура разработчика:
index.html
app.js
page.html

где в app.js у вас есть app.state('page', templateUrl: 'page.html')

  • Запрос Http для index.html
  • Запрос Http для приложения.
  • Когда пользователь переходит на # страницу Http-запрос для page.html. Содержимое page.html добавлено в templateCache.
  • Когда пользователь снова переходит к # странице, содержимое берется из templateCache
  • Если пользователь нажмет F5: шаблонCache будет очищен, index.html будет перезагружен с сервера, app.js будет перезагружен с сервера, page.html будет перезагружен с сервера или из кеша браузера в зависимости от заголовков страниц и браузера.

    1. Производственная структура:
index.html
app.js

где в app.js у вас есть app.state('page', templateUrl: 'page.html') и app.module(...).run(function($templateCache.put("'page.html'", "<div>...</div>")))

  • Запрос Http для index.html
  • Запрос Http для приложения.
  • Когда пользователь переходит на # страницу - нет запроса для page.html.

Конечно, вы не хотите хранить все ваши html-шаблоны в одном файле - поэтому, чтобы перейти от 1 до 2, вы используете grunt.

NB: запросы для index.html и app.js могут быть кэшированы браузером, добавив правильные заголовки в index.html и число в app.js, исключает это. Итак, в конце, когда вы проверяете исходные файлы своего сайта в браузерах, вы хотите увидеть:

  • index.html
  • приложение. # uniquecode #.js
  • angular.js
  • 0
    по умолчанию используется templateCache или мы должны использовать его явно
  • 0
    templateCache - это угловое место для хранения HTML-шаблонов - вы можете считать это просто обычной картой <String, String>
Показать ещё 3 комментария
0

Когда вы запрашиваете страницу в приложении angularjs, первый угловой момент делает запрос и веб-сервер отправляет страницу (html, js и изображения) в браузер с кодом ответа 200. Во второй раз, если ничего не изменилось, ответ сервера с кодом ответа 304, не отправлять страницу и страницу загрузки браузера из кеша, поэтому для загрузки каждого частичного представления вам нужен только один запрос на сервер. Вы можете проверить его на вкладке сети инструментов разработчика браузера. В производственной среде, кроме того, ворчание позволяет минимизировать время загрузки html, javascript и css.

Ещё вопросы

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