我需要修改所有链接才能使用 ajaxify 这个网站吗?

发布于 2024-08-21 14:33:17 字数 684 浏览 6 评论 0原文

我使用ajax(通过jquery)而不是全页刷新构建了此网站。目前,它不支持浏览器的后退/下一步按钮,也不支持深层链接书签。 我想实现这些功能,例如使用 jquery bbq 插件,但是我不确定我是否完全理解这个概念。

我缺少的要点是:我需要修改所有链接吗?

例如,采用以下 url:

http://example.com/projects/title-of-project/visuals/video/

我的应用程序将 url 转换为这些变量:

section = projects
item= title-of-project
content=visuals
id=video

php 脚本检测这是 ajax 调用(因此仅返回视频 html)还是非 ajax 调用(因此返回整页 html,其中包含视频里面的代码)。

如果我使用哈希值,浏览器将不会发送变量。正确的?

我有点迷失,所以如果您需要更多详细信息,请随时发表评论。

I built this website using ajax (via jquery) instead of full page refresh. Right now, it does not support the browser's back/next buttons, nor deeplink bookmarking.
I'd like to implement these functionalities, using for instance the jquery bbq plugin but i'm not sure i understand completely the concept.

The main point i'm missing is this: do i need to modify all my links?

For instance, take this url:

http://example.com/projects/title-of-project/visuals/video/

My application converts the url into these vars:

section = projects
item= title-of-project
content=visuals
id=video

The php script detects whether this is an ajax call (thus only returns the video html) or a non ajax call (thus returns the full page html, with the video code inside).

If i use hashes instead, the browser will not send the variables. right?

I'm a bit lost so don't hesitate to comment if you need more details.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

恬淡成诗 2024-08-28 14:33:17

基本上,哈希永久链接的工作方式如下:

  1. 用户单击链接,这会对其他 URL 进行 AJAX 调用。
  2. 单击事件告诉历史管理代码(如 BBQ 插件)更新哈希值,即 URL 中井号字符 (#) 之后的部分。
  3. 历史管理代码确保当用户单击后退或前进按钮时,浏览器哈希会更改为其上一个或下一个状态。
  4. 当历史管理代码认为哈希已更改时,它会触发一个事件。
  5. 您的应用程序响应该事件并使用浏览器哈希确定从哪个新 URL 获取内容。

例如,假设您网站上的链接使用 AJAX 从 http://example.com/some/path 加载内容。当用户单击链接时,浏览器 URL 可能是 http://yoursite.com/#some/path。单击另一个链接时,哈希值可能会更改为#some/other/path。当用户点击后退按钮时,哈希值应返回到#some/path。然后,您的应用程序将获取当前哈希,然后使用 AJAX 相应地加载 http://example.com/some/path

因此,AJAX 从中获取内容的 URL 不必更改。这有道理吗?我可能误解了你的问题。

Basically, hash-permalinks work like this:

  1. User clicks on a link, which makes an AJAX call to some other URL.
  2. The click event tells the history-managing code (like the BBQ plugin) to update the hash, the part of the URL after the pound character (#).
  3. The history-managing code makes sure that when the user clicks the back or forward button, the browser hash changes to its last or next state.
  4. The history-managing code fires an event when it thinks the hash has changed.
  5. Your app responds to the event and determines what new URL to get contents from, using the browser hash.

For example, let's say a link on your site uses AJAX to load content from http://example.com/some/path. When the user clicks the link, the browser URL could be http://yoursite.com/#some/path. When another link is clicked, the hash could change to #some/other/path. When the user hits the back button, the hash should be returned to #some/path. Your app would then take the current hash and then use AJAX to load http://example.com/some/path accordingly.

So, the URLs that AJAX grabs content from don't have to change. Does that make sense? I may have misunderstood your question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文