Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建AJAX导航的最佳实践是什么?_Javascript_Jquery_Ajax_Html_.htaccess - Fatal编程技术网

Javascript 创建AJAX导航的最佳实践是什么?

Javascript 创建AJAX导航的最佳实践是什么?,javascript,jquery,ajax,html,.htaccess,Javascript,Jquery,Ajax,Html,.htaccess,我正在尝试建立一个网站,它不会在用户每次按下导航栏的链接时重新加载所有页面。因此,我将jQuery和AJAX与GET一起使用,以在div标记中加载相应的html文件 然后我需要更改URL,以便我可以使用以下代码编写它: history.pushState() 要阅读它: location.href() 我将修改htaccess以重定向URL,如下所示: mysite.com/home mysite.com/contact 到我唯一的html文件,我有它将被读取,然后加载 我的问题是:这

我正在尝试建立一个网站,它不会在用户每次按下导航栏的链接时重新加载所有页面。因此,我将jQuery和AJAX与GET一起使用,以在div标记中加载相应的html文件

然后我需要更改URL,以便我可以使用以下代码编写它:

 history.pushState() 
要阅读它:

location.href()
我将修改htaccess以重定向URL,如下所示:

mysite.com/home
mysite.com/contact
到我唯一的html文件,我有它将被读取,然后加载

我的问题是:这样行吗?这是最好的方法,还是你要修改、删除或添加一些东西


如果您能提供任何帮助或建议,我们将不胜感激。如果您需要更多信息,请告诉我,我将编辑此帖子。

重定向到单个URI,然后使用JavaScript重建页面,这就忽略了使用历史API的意义,即拥有不依赖JavaScript的真实URL,有利于链接到(在使用JS导入内容之前,没有加载中间页面——这曾经是Twitter的问题,也是他们转向history API的原因)并且是搜索引擎的好食物。

重定向到单个URI,然后用JavaScript重新构建页面,这就忽略了使用历史API的意义,即拥有不依赖JavaScript的真实URL,有利于链接到(在使用JS导入内容之前,没有加载中间页面——这曾经是Twitter的问题,也是他们转向history API的原因)而且是搜索引擎的好食物。

你为什么要用jQuery来阅读window.location.href?看起来很奇怪。好吧,我用它来做其他事情……所以库已经被添加了。@Joëlle-
location.href
$(location.attr('href')的代码和函数调用更少;
这甚至没有意义,因为
location
不是HTML元素节点。为什么要使用jQuery来读取window.location.href?似乎很奇怪。好吧,我用它来做其他事情……所以库已经被添加了。@Joëlle-
location.href
$(location.attr('href')的代码和函数调用更少
这甚至没有意义,因为
位置
不是HTML元素节点。@quintin我也在想这个问题。如果我有一个页面可以通过javaScript加载文章,那么仍然需要有服务器端逻辑来直接链接到这些文章(例如)搜索引擎优化和用户想要直接书签到那篇文章吗?是的。参考见和+1。我猜mv(什么)像symfony这样的框架通过在进行ajaxcall时启用不同的响应/控制器来解决这个问题。然后,你可以只呈现模板的一部分,这样JS就可以设置页面部分的内容。谢谢大家的回答。因此,使用history api,我必须预加载页面的所有内容,这就是你说的吗?不,你知道吗不需要预加载任何内容。当一个页面首次加载时,它的各个部分都应该使用服务器端代码而不是客户端代码进行组装。@quintin我也很想知道这一点。如果我有一个页面可以通过javaScript加载文章,那么仍然需要有服务器端逻辑来直接使用javaScript链接到这些文章(例如)对于SEO和想要直接将该文章添加到书签的用户?是的。参考文献请参阅和+1。我猜是mv(某物)像symfony这样的框架通过在进行ajaxcall时启用不同的响应/控制器来解决这个问题。然后,你可以只呈现模板的一部分,这样JS就可以设置页面部分的内容。谢谢大家的回答。因此,使用history api,我必须预加载页面的所有内容,这就是你说的吗?不,你知道吗不需要预加载任何内容。当页面第一次加载时,它的各个部分应该使用服务器端代码而不是客户端代码进行组装。