Как браузер загружает содержимое предыдущей страницы? - PullRequest
0 голосов
/ 23 мая 2019

Я создаю веб-страницу с laravel, и содержимое страниц главного меню загружается с помощью ajax.Проблема в том, что когда я возвращаюсь на предыдущую страницу с помощью кнопки «Назад» в браузере, браузер загружает не только содержимое, полученное при вызове ajax, но и всю страницу.Таким образом, я получаю два верхних и нижних колонтитулов.

Это мой код:

base.blade.php:

<html>
<body>

// список меню
...

<div class="main">
@yield('main')
</div>
</body>
</html>

page.blade.php:
@extends ('base')

@section('main')
<div class="main">
My page content.
</div>
    @stop

// пользователь нажимает на ссылку меню и вызывает этот скрипт
script.js:

$(".menu_list").on("click", "a.menu_page", function(e) {
// get some variables
$.ajax({
type: "GET",
url: url,
dataType: "html",
success: function (result) {
// get only div.main content from result
var mainContent = $(result).find("div.main").html();
// and load this data
$("div.main").html(mainContent);
} ...

Я также пытался не возвращать полные данные страницы, а только основной раздел контроллера:

controller.php:

...
if(Request::ajax()) {
return view('page')->renderSections()['main']; }

И в script.js:

success: function (result) {
$("div.main").html(result);

, но это не имело никакого эффекта.

Так что я не понимаю, почему браузер загружает всю страницу в раздел @yield послевозврат к предыдущей странице, хотя контроллер вернул только часть содержимого страницы.

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