更简单/更正方式知道何时加载整个页面或仅加载其中的一部分

时间:2014-02-04 02:08:23

标签: javascript ajax web

我已经实现了一些简单的页面,包括标题,内容区域和页脚。

<div id=header></div>
<div id=content></div>
<div id=footer></div>

点击锚点/链接后,我使用ajax发送请求,然后将从响应中获取的html加上一些工作(脚本)加载到内容区域。全部根据各自的资源(网址)完成。

    $("#main-menu a[rel='tab']").click(function(e){
        pageurl = $(this).attr('href');
        $.ajax({url:pageurl,success: function(data){
            console.log(data);
            $('#content').html(data);
        }});

        if(pageurl!=window.location){
            window.history.pushState({path:pageurl},'',pageurl);
        }
        return false;
    });

脚本位于index.html上(被视为“欢迎文件”),从中我可以加载内容。但是,问题在于:当我通过网址直接访问一个资源时,也就是说,没有点击某个元素 - 例如 site.com/sports ,我的服务器将返回与之相关的页面没有页眉或页脚的运动。 为了解决这个问题,我在服务器上检查名为'ajax'的请求的参数;如果是真的,它会响应请求的特定数据。但是,如果'ajax'是假的或没有通知,那么我将页眉和页脚一起发送。

我这样做了吗?还有另一种方法吗?是否有一些好的书/文章我可以找到这个答案?

1 个答案:

答案 0 :(得分:0)

如果您使用的是apache,可以通过friendly_url执行此操作。 在htaccess,你可以隐藏index.html,并通过GET调用页面。 Apache会自动将其更改为site.com/index.html?page=anything