2

我知道有人问过这个问题,如何在加载内容时制作像 facebook/gmail 这样的网站。

但答案很薄弱。为了提供帮助,我做了一些研究。有没有人研究过这个并可以提供一些指导?

我可以走 3 条不同的路线:

1)jquery.load(在html中加载),在css和getscript JS中加载。

我还不明白,我需要弄清楚的是,如何跟踪动态加载的 CSS / JS。IOW 我不想在用户访问页面时继续加载相同的 CSS / JS他们已经缓存了。

使用全局 JS 变量或隐藏 div 是否明智?

2) 大管。

我已经看到了.net 的实现。但是有谁知道 PHP 实现。我在 github 上看到了这个:https ://github.com/dynamoid/bigpipe 但我对它印象不深。还有其他实现吗?

3) jQuery 模板

我一直在做一些研究。这会是最好的方法吗?即使我可以先加载(并缓存)模板,然后再将数据应用于它。我仍然不清楚每页加载了什么 CSS 和 JS。

最后,如果您知道任何有关最佳实践选择的资源,请告诉我。

谢谢 :)

4

2 回答 2

2

我以为我会回来回答这个问题。

看到这个博客后:http: //jmperezperez.com/我想出了自己的解决方案。

1) 我创建了页眉、内容和页脚的线框。标题和内容区域后来被赋予了 id,以便将内容加载到其中。

2) 使用 Jquery 地址,我可以在导航站点时更新地址栏,而无需刷新任何页面。

3)在后端,我然后组装json来反馈内容,可以是多个div,然后加载JS和CSS。

4) 然后我创建了一个脚本来动态加载 CSS 和 JS 并跟踪已经加载的内容。如果一个页面被多次请求,CSS 和 JS 不能被加载两次。

也许稍后,我会看看如何做得更好:http: //jmperezperez.com/talk-facebook-frontend-javascript/

现在我的网站的运作方式与 facebook/gmail 完全一样。除了登录和注销之外,根本没有页面刷新。

如果有人知道任何使用 jquery 处理单页应用程序的 github 存储库。让我知道。

谢谢

于 2011-03-18T23:43:52.963 回答
0

我强烈建议使用 bigpipe 实现,而不是使用PHP 和 Prototype 编写的 Garo 版本https://github.com/garo/bigpipe 。

您的网站会遇到的问题是,由于它是一个基于 Javascript 的网站,像 Google 等搜索机器人将无法正确索引您网站的内容,因为该内容存在于您网站的其他部分,而 bigpipe 会检测到如果机器人正在查看您的页面并正常呈现,则绕过。

我在 wordpress 安装上测试了 bigpipe,可以说加载时间提高了 3000%,这是由于页面加载时加载图像、JS 和 CSS 文件等外部数据的瓶颈。我将它与一个名为 PHP Speedy 的插件绑定在一起,我对其进行了修改,以清理所有无用的空格并将 css 和 javascript 以及其他所有内容压缩到一行代码中,并且可以告诉您它值得在您的网站中实现而不是依赖 AJAX 方法。如果您使用的是 JQuery,您可能需要使用 noConflict 函数来阻止两个不同的 JS 库发生冲突。

你可以从这里获取它:https ://github.com/garo/bigpipe

如果您确实使用它,您会发现它比您所做的更好!

于 2012-12-10T07:09:48.283 回答