全Javascript网页的优势

3

我注意到像Google和Facebook这样的大型网站,在查看页面源代码时,99%的源代码都是JavaScript。

有人知道这种方法与常规的HTML+JavaScript页面相比的优势吗?

它只是为了增加一些安全性,还是在性能或可维护性方面有好处?


天啊,你说得对 :)。Facebook的源代码主要由SCRIPT元素组成... - Šime Vidas
4个回答

2

我之所以采用这种模式来实现页面,是因为我希望拥有一个客户端不可知的服务器,它只提供以易于解析的格式(如JSON)封装的数据,以便相同的服务器可以用于驱动传统的Web应用程序以及其他一些应用程序,如本地Android和iPhone应用程序,而无需对服务器代码进行任何特殊修改。

JavaScript-heavy页面允许您通过让JavaScript从服务器请求所需数据,然后使用它来构建HTML接口来使用此设置。考虑到大多数主要参与者都有类似的问题,即希望使用单个服务器架构来在大量平台上驱动应用程序,这可能是他们选择主要使用JavaScript实现网页的原因之一。


你不一定需要客户端脚本来实现这个,可以使用不同的样式表在客户端上,或者在服务器上使用XSLT来实现基本上与您在客户端上建议的相同的功能。使用JavaScript重新构建本地浏览器UI是一个非常庞大的工作(看看那些做这个工作的框架的大小),并且通常限制访问一定数量的现代浏览器。 - RobG

0
全 JavaScript 网页的优点
有很多缺点,其中一个是破坏了可访问性。另一个是你往往会完全重写客户端 UI,这会导致跨浏览器问题和笨拙表现,因为本机浏览器函数被替换为 DOM 等效函数。
试试在旧版或非主流浏览器和旧 PC 上使用这些站点。你可能不会喜欢这种体验。
最后,搜索机器人不会索引你的站点,除非它们足够聪明以理解脚本和数据 - 我认为没有多少机器人可以做到。

-1

在我看来,这些都不是问题。如果您想在不同的屏幕尺寸上展示不同的内容,交互性更强且更易于实现。 对于某些部分,可以通过一些技巧来提高性能(我看到过一个来自 MSDN 的东西,他们使用 JavaScript 将块存储在本地存储中,从而大大减少了 HTTP 请求的数量,但这意味着不能支持没有启用 JS 的浏览器)。


-1
我绝对不建议手动编写以JavaScript为主的页面。我认为它们的页面之所以看起来像这样,最可能的原因是他们使用了像JSF等库来为他们动态生成JavaScript。虽然JavaScript确实具有直接在客户端上运行而无需请求服务器执行工作的性能优势(这意味着需要与服务器进行往返),但通常仅限于不需要访问服务器资源的微不足道的任务。至于可维护性,我认为过多使用“手动”JavaScript编写的页面将更难维护。为了更好的可维护性,您应该将JavaScript包含在单独的js文件中。

jQuery并不会“动态生成JavaScript”。它是一个库,您可以根据自己的代码编写来使用。此外,我绝对鄙视那些生成JavaScript代码的框架所产生的垃圾(我在看着你,ASP.NET AJAX)。在我的看法中,真正的丰富客户端开发是通过使用“手动”JavaScript(例如使用jQuery等库)完成的。 - josh3736
好的,没问题,它不是动态生成的。我想我更多地是要说它隐藏了细节。我认为它输出的javascript是否垃圾并不重要。关键是它隐藏了细节,所以你不需要担心它。更重要的是,你的源代码易于阅读和维护,我认为在你的html(或“视图”)文件中有越少的javascript,阅读和维护就越容易。 - Gyan aka Gary Buyn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接