Ajax jquery:从不同页面构建的一个页面站点

时间:2013-11-17 19:59:57

标签: javascript jquery ajax

我见过一个article,他们建议将一页网站分成多个页面进行搜索引擎优化。我是通过使用Ajax.load

完成的
$( "#target-location-content" ).load( "pagename.html #resource-content");

为了确保用户看到的是单页网站而不是单页,我更改了使用JavaScript的导航链接,使其指向页面上的ID。

var mainNavA = $("header nav a");
for(var i = 1, len = mainNavA.length; i < len; i++)
{
    var name = "index.html#content-" + mainNavA[i].attributes.href.value.split(".")[0];
    mainNavA[i].href = name;
}

除此之外,我希望需要通过搜索结果或网址直接重定向用户访问页面。

我可以用以下方法解决这个问题:

document.location 

并检查索引文件是否在路径中。如果不是,我可以将它们引导到索引文件。

var url = document.location.href.search("index");

if(url < 0)
    document.location = "http://localhost:8888/projecten/dewilg/index.html";

代码按预期工作。我只是想知道:

对于给定的问题,这是一个很好的解决方案吗?是否有更好的解决方法?

感谢。

1 个答案:

答案 0 :(得分:0)

正如您所指出的,您已经为您的方案提供了解决方案。现在,我相信你应该有几页然后在服务器端加载所需的内容,而不是在客户端。使用AJAX加载页面的主要内容不是一个好主意。

如果使用AJAX加载页面的主要内容,则: - 用户转到该页面 - 浏览器向服务器发送请求 - 服务器响应浏览器 - 页面的客户端确定要加载的内容,然后向服务器发送另一个请求 - 服务器响应

如果您确定在服务器端加载了什么,那么: - 用户转到该页面 - 浏览器向服务器发送请求 - 服务器响应浏览器

在第一种情况下,您向服务器发送两个请求,而在第二种情况下,您向服务器发送一个请求。考虑到服务器请求很昂贵的事实,即它们需要花费大量时间,我们可以很容易地得出结论,从性能的角度来看,最好确定在服务器端加载什么,而不是AJAX请求。此外,如果您有ajax请求,那么您的用户可以查看发送到客户端的脚本,他们可以看到您如何处理资源。这可能会向您的用户提供有关您如何操作的过多信息。