Я создаю приложение SPA с помощью ASP.NET MVC.ASP.NET MVC SPA - Как обрабатывать обновление страницы в приложении с одной страницей
Пункт входа в мое приложение: /home/index
. Все остальные виды загружаются через ajax.
Теперь, например, пользователь в настоящее время находится на странице /home/index#/home/widgetdemo
. Теперь, когда он нажмет кнопку обновления, произойдет следующее:
Загружается индексный указатель, и сразу после этого отображается вид виджетов. Проблема заключается в том, что индексный указатель загружается без необходимости, потому что при обновлении страницы мы хотим увидеть вид widgetdemo снова. Но на стороне сервера я не вижу хеш-фрагмент URL-адреса и не могу знать, хочет ли пользователь индекс или вид widgetdemo.
Теперь у меня есть решение, на мой взгляд:
На начальной загрузки приложения или обновления страницы, проверьте для существующего фрагмента хэш в URL на стороне клиента и загрузить фрагмент часть вместо индексном или если фрагмент не существует. В основном загружается только макет страницы при первой загрузке (или обновлении страницы), и мы решаем, чтобы погода клиента загружала индексный просмотр или другое представление. -> Это приводит к двум запросам один раз.
Что было бы лучше всего здесь? (Куки будет вариант, но они должны быть переданы по каждому запросу ...)
EDIT:
Как это сделать: На первой загрузке страницы или обновлении страницы, я только загрузите страницу «Макет» и «Загрузка документа». Я просматриваю URL-адрес и определяю, какую страницу/действие нужно вывести/вызвать. Это легко, но у вас есть два запроса, когда приложение загружается, но тогда вам не нужно возиться с полями cookie/hiddden.
Какую клиентскую структуру вы используете? Угловая? – Win
нет Угловая, просто jQuery, без рамки – Legends
Вы не сможете пройти очень далеко, не используя клиентскую инфраструктуру, но это ваш звонок. Мое предложение - посмотреть на Angular2 или ReactJS .Net, прежде чем инвестировать в собственные рамки. – Win