【问题标题】:jQuery, AJAX: Make part of a page ( <div> ) not refresh on website navigationjQuery、AJAX:使页面的一部分 ( <div> ) 在网站导航上不刷新
【发布时间】:2014-10-05 09:02:44
【问题描述】:

我有一个包含歌曲的网站,底部还有一个 .mp3 播放器。

当您单击一首歌曲时,播放器开始播放该歌曲,但是当您尝试导航到该网站并假设单击专辑时,您自然会被重定向到www.mysite.com/?album=test,因此歌曲将停止播放.

我试图让播放器(基本上是播放器所在的&lt;div&gt;)没有重新加载,每次我点击&lt;a href&gt;button。为了清楚起见,您可以查看 https://soundcloud.com/ 示例。这就是我希望我的网站的行为方式。

现在,如果我在每个&lt;a href&gt; 上使用 jQueries,页面的 URL 将保持不变。这是我不想发生的。我还听说 iframe 是一个糟糕的解决方案。那么,https://soundcloud.com/ 和类似网站如何实现我想要做的事情?有人知道怎么做吗?

【问题讨论】:

标签: javascript jquery html ajax


【解决方案1】:

我看到 SoundCloud 的工作方式是使用 AJAX(是的,您可以使用 jQuery 来做到这一点)。所以你在技术上保持在同一页面上。关于“相同的 URL”,您实际上可以使用 History API 来操作浏览器的历史记录和 URL。

所以每次导航,你的 JS 应该通过操纵历史来模拟离开到另一个页面,让浏览器认为它离开了页面。 JS 的另一位跟踪 url,称为路由器,以知道在观察到某个 url 模式时要做什么。例如,如果我在路由/artists/foo,那么页面应该在艺术家“foo”的数据中进行 AJAX。

【讨论】:

  • 能不能指定`js的位跟踪url,叫路由器`?
  • 我将如何使用 history api 制作 www.mysite.com/?album=test ?能给我看看么 ?或者我应该自己搜索它?
猜你喜欢
  • 2012-03-28
  • 1970-01-01
  • 2013-12-19
  • 2013-04-26
  • 2013-07-27
  • 2021-08-31
  • 1970-01-01
相关资源
最近更新 更多