【问题标题】:dynamically load part of a website - change url动态加载网站的一部分 - 更改 url
【发布时间】:2012-05-17 08:45:50
【问题描述】:

我的问题是关于这个网站的 - http://www.bits-apogee.org/2011/

每当您点击侧面导航栏中的链接时,网站的中间部分都会动态加载。此外,网址也发生了变化,其他一切都保持不变。这是怎么做到的?

这是一些查询插件吗?

【问题讨论】:

  • 我不知道,但那个网站的设计很糟糕。
  • 你们都错过了这个问题。他在询问 URI 更新,但似乎没有刷新。

标签: php jquery html dynamic load


【解决方案1】:

我完全同意@JMCCreative。看起来这是一次真正的刷新。你应该看看 StackOverflow 上的以下帖子。

Modify the URL without reloading the page

【讨论】:

  • 查看子页面的 URI http://www.bits-apogee.org/2011/#Automation/Circuit_Design_Challenge/ 哈希转换为变量后的所有内容,然后通过 XHR 加载该相对路径
【解决方案2】:

站点在 URL 中使用哈希 (#) 来表示正在加载的新内容。

这对于人们为动态加载的内容添加书签非常有用(通常散列加载到页面上的特定区域、命名锚点或新浏览器的 ID),因为它们不会触发页面刷新...

http://www.highrankings.com/urls-with-hashtags-307 对此存在缺陷(SEO)问题...但是您会注意到越来越多的网站这样做,所以我认为 SEO 机器人会变得更好。

【讨论】:

【解决方案3】:

有两种可能:

如果你使用 jQuery,你可以使用方便的插件jQuery Address。这将处理上述两种情况。

【讨论】:

  • 啊......好点......我不记得新的历史API
【解决方案4】:

他们没有使用插件。他们正在向这样的 URL 发出 ajax 请求: http://www.bits-apogee.org/2011/getcontent/?even=Rachel+Armstrong 并将概览转储到容器中。


这类流程的圈子通常是这样的:

  1. 监听链接点击
  2. 点击时,阻止默认事件。
  3. 用户window.history.pushState更新url
  4. 其他一些代码 - 听到新的历史
  5. 生成一个url来获取内容。
  6. ajax加载url
  7. 将数据转储到容器中

我使用过的 2 个库,都比上面的更容易,因为它们依赖于通过 AJAX 加载常规 html 页面,而不是您指向的示例站点,该站点使用 JSON 格式来获取数据。

  • Pjax - 通过从不同的 URL 拉取该 HTML 节点来更新页面的部分。
  • Ajaxify - 最简单的解决方案,您可以在 10 分钟内在 HTML 网站上完成该效果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 2021-06-11
    • 1970-01-01
    • 2010-09-20
    相关资源
    最近更新 更多