带有转义片段 URL 的 jQuery 动画(hash-bang,#!)

发布于 2024-12-27 10:08:40 字数 817 浏览 1 评论 0原文

我的网站设置如下:页面加载时,会播放模板中的 jQuery 动画,完成后,进一步进行 Ajax 调用以获取页面内容。现在,我想部署像 http://com-address/#!page 这样的 hashbang,我需要也保留页面加载时的动画。但我认为这个设置的问题是;当网络爬虫访问该页面时,它不会等待动画完成并进行 Ajax 调用。它需要具有加载内容的页面状态(在我的例子中是在动画完成后获取的)。

给定上述场景,哪种方式更好:

  1. 改变整个流程,抢先加载页面内容并隐藏 直到动画播放完毕。

  2. 仅当在 URL 中找到 hash-bang 或 _escaped_fragment 时:

    a.按照步骤 1 操作。

    b. 加载包含不带动画内容的页面:

  3. 我对网络爬虫的假设是不正确的&让 当前的流量是这样的。

有什么注意建议吗?

编辑

@kdzwinel,感谢您提供有关文本浏览器的提示!

第二个想法是,我会选择选项 2(a),因为当爬虫访问具有分段 URL 的资源时,它应该获得页面上的完整结果内容。如果用户直接导航到分段 URL,则动画的用户体验也将完好无损(通过删除页面加载和动画开始之间动态内容片段上的内容)。

同样对于所有其他场景,我们将继续旧的流程(动画然后通过 Ajax 获取),因为我们不想刷新页面,因为用户已经在访问网站并尝试使用带有碎片 URL 的锚点平滑/无缝地导航(绑定他们的点击事件以开始动画)。

My website is setup like: when the page loads, a jQuery animation -- in the template -- is played which, on completion, further makes an Ajax call to fetch the content of the page. Now, I want to deploy hashbang like http://com-address/#!page and I need to retain the animation at the page load as well. But I assume the problem with this setup is; when the web-crawler visits the page, it doesn't wait for the animation to complete and make the Ajax call. It requires the state of the page with the loaded content (which, in my case is acquired after the animation is completed).

Given the above scenario, which way is better:

  1. Change the entire flow and load the page content preemptively and hide it
    till the animation is played.

  2. Only when the hash-bang or _escaped_fragment is found in the URL:

    a. follow step 1.

    b. load the page with the content without animation.

  3. My assumption about the web-crawler is incorrect & let the
    current flow as it is.

Any heads-up advice?

EDIT

@kdzwinel, thanks for the tip about text-browsers!

On the second thought, I'll go with the option 2(a) because when the crawler visits the resource with fragmented URL, it should get the full resultant content on the page. And if the user navigates directly to the fragmented URL, the user-experience with animation would be intact too (by removing the content on the dynamic content fragment between the page load and the animation starts).

Also for all the other scenarios, we would continue the old flow (animate then fetch via Ajax) because we don't want to refresh the page since the user is already visiting the website and trying to navigate smoothly/seamlessly using anchors with fragmented URL (binding their click events to begin animation).

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

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

发布评论

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

评论(1

爱给你人给你 2025-01-03 10:08:40

网络抓取工具不会执行 JavaScript(网站站长指南 -

如果 JavaScript、Cookie、会话 ID、框架、DHTML 或 Flash 等奇特功能使您无法在文本浏览器中查看整个网站,那么搜索引擎蜘蛛可能无法抓取您的网站。

),如果您不想将内容编入索引,请选择选项#1。当页面打开时加载内容并且如果浏览器支持 javascript - 隐藏内容并显示动画。

Web crawlers don't execute javascript (webmaster guidelines -

If fancy features such as JavaScript, cookies, session IDs, frames, DHTML, or Flash keep you from seeing all of your site in a text browser, then search engine spiders may have trouble crawling your site.

), if you wan't your content indexed go with option #1. Load the content when page is opened and if browser supports javascript - hide the content and show the animation.

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