浏览器如何加载上一页的内容?

时间:2019-05-23 08:29:04

标签: ajax laravel

我正在使用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节中,尽管控制器只返回了部分页面内容。

0 个答案:

没有答案