在没有AJAX的情况下加载页面的一部分

时间:2012-10-18 11:14:22

标签: html5 jquery ajax css3

我正在开发一个网站,我希望左侧菜单保持不变,同时加载点击选项的内容。

实际上,我所做的是每个菜单链接使用AJAX它返回所请求的内容。一切正常,但我想避免它,因为那时很难跟踪统计数据(谷歌靴子等其他一些东西)。

如何在没有javascript的情况下执行相同的影响/类似工作(http://www.foundcrelamps.com/)?

1 个答案:

答案 0 :(得分:1)

我会做的有点不同。我会在菜单上创建指向内容的有效链接。例如Contacte指向http://www.foundcrelamps.com/contacte,以便在浏览器中粘贴该链接时,它会直接加载页面。

然后保留ajax,以便用户不会在每次点击时重新加载整个页面。

您可以使用History.js保留浏览器历史记录并修改网址,以便后退/下一步按钮可以正常工作,即使是使用ajax。

编辑,如果您使用标准a的传统href元素,它可能如下所示:

$('a').click(function(){
    $('YOUR CONTAINER').load($(this).attr('href'));
    return false; // so that it does not load the whole page
});

然后在服务器上你应该这样做:

/* AJAX check  */
$isAjax = false;
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest') {
    $isAjax = true;
}

if (!$isAjax) {
    outputHeader();
}

outputMainContent();

if (!$isAjax) {
    outputFooter();
}

这样当你执行ajax时,你只会加载内部内容。如果没有,它将加载整个页面。

还有另一种方法 - 您可以使用jQuery加载整个页面,但只使用html的内部部分来替换原始内容。