我见过一个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";
代码按预期工作。我只是想知道:
对于给定的问题,这是一个很好的解决方案吗?是否有更好的解决方法?
感谢。
答案 0 :(得分:0)
正如您所指出的,您已经为您的方案提供了解决方案。现在,我相信你应该有几页然后在服务器端加载所需的内容,而不是在客户端。使用AJAX加载页面的主要内容不是一个好主意。
如果使用AJAX加载页面的主要内容,则: - 用户转到该页面 - 浏览器向服务器发送请求 - 服务器响应浏览器 - 页面的客户端确定要加载的内容,然后向服务器发送另一个请求 - 服务器响应
如果您确定在服务器端加载了什么,那么: - 用户转到该页面 - 浏览器向服务器发送请求 - 服务器响应浏览器
在第一种情况下,您向服务器发送两个请求,而在第二种情况下,您向服务器发送一个请求。考虑到服务器请求很昂贵的事实,即它们需要花费大量时间,我们可以很容易地得出结论,从性能的角度来看,最好确定在服务器端加载什么,而不是AJAX请求。此外,如果您有ajax请求,那么您的用户可以查看发送到客户端的脚本,他们可以看到您如何处理资源。这可能会向您的用户提供有关您如何操作的过多信息。