是否建议使用Javascript呈现整个网站?(优化)

是否建议使用Javascript呈现整个网站?(优化),javascript,html,performance,Javascript,Html,Performance,我在某个地方读到,pros每页只打印一行html和一行javascript,其余的渲染过程由客户端完成。我发现这很有希望,所以我想我应该使用以下结构来呈现页面: <html> <head> {{Title}} {{Meta tags}} {{CSS via CDN}} </head> <body> {{Dynamic JSON array containing the datas of the curre

我在某个地方读到,pros每页只打印一行html和一行javascript,其余的渲染过程由客户端完成。我发现这很有希望,所以我想我应该使用以下结构来呈现页面:

<html>
  <head>
    {{Title}}
    {{Meta tags}}
    {{CSS via CDN}}
  </head>
  <body>
    {{Dynamic JSON array containing the datas of the current page}}
    {{Javascript libraries via CDN}}
    {{JS files that contain HTML templates via CDN}}
  </body>
</html>

{{Title}}
{{Meta tags}}
{{CSS via CDN}}
{{包含当前页面数据的动态JSON数组}
{{Javascript库通过CDN}}
{{通过CDN包含HTML模板的JS文件}
因此,问题是:

  • 这真的是一种好的做法吗
  • 通过CDN加载HTML模板值得吗
SEO是次要的,但我当然会提供一些必要的元标记


谢谢你的回答

当然,这是一个很好的实践(如果SEO真的是次要的话)

此外,您还可以
缩小
您的javascript和
gzip

就性能而言,客户端脚本
比服务器脚本快得多

当然,这是一个很好的实践(如果SEO真的是次要的)

此外,您还可以
缩小
您的javascript和
gzip

客户端脚本
在性能方面比服务器脚本快得多

当然,在客户端渲染网站有其优点和缺点

优点:

  • 您可以重用给定的模板。无需要求服务器呈现给定的UI元素,因此速度更快
  • 当使用类似于您甚至可以更进一步的工具时,当重新招标模板时,仅替换更改的零件
  • 您可以包括给定的模块/子页面(当需要时),这样您仍然可以避免在第一次加载时加载所有数据
  • 当不在服务器上呈现网站时,它可以处理更多请求
  • 网站更具活力。用户在浏览页面时获得即时感
缺点:

  • 它对SEO不友好,但有一些易于使用的工具可以帮助处理它(Meteor.js有一个)

计算很简单:)。使用动态JS网站渲染:)。

在客户端渲染网站当然有其优点和缺点

优点:

  • 您可以重用给定的模板。无需要求服务器呈现给定的UI元素,因此速度更快
  • 当使用类似于您甚至可以更进一步的工具时,当重新招标模板时,仅替换更改的零件
  • 您可以包括给定的模块/子页面(当需要时),这样您仍然可以避免在第一次加载时加载所有数据
  • 当不在服务器上呈现网站时,它可以处理更多请求
  • 网站更具活力。用户在浏览页面时获得即时感
缺点:

  • 它对SEO不友好,但有一些易于使用的工具可以帮助处理它(Meteor.js有一个)
计算很简单:)。使用动态JS网站呈现:)

这真的是一种好的做法吗

那是相当主观的。这取决于您对可靠性、性能和成本的重视程度

您可以获得性能提升,但您可以:

  • 有一个非常脆弱的系统,如果JS因任何原因无法加载、被浏览器错误绊倒等,它将完全崩溃
  • 必须从构建所有逻辑服务器端开始,然后复制所有工作客户端,并使用
    pushState
    和friends来创建可行的URI
SEO是次要的,但我当然会提供一些必要的元标记

撇开搜索引擎优化所需的元标记问题不谈……用客户端JavaScript呈现它们是毫无意义的。如果只使用客户端JS呈现内容,那么搜索引擎根本看不到它

通过CDN加载HTML模板值得吗

再说一次,这要视情况而定。使用CDN可以加快静态文件的交付速度,但这会增加成本,并且需要为站点构建更复杂的构建系统(因为您必须部署到多个服务器并确保发布的URI匹配)

这真的是一种好的做法吗

那是相当主观的。这取决于您对可靠性、性能和成本的重视程度

您可以获得性能提升,但您可以:

  • 有一个非常脆弱的系统,如果JS因任何原因无法加载、被浏览器错误绊倒等,它将完全崩溃
  • 必须从构建所有逻辑服务器端开始,然后复制所有工作客户端,并使用
    pushState
    和friends来创建可行的URI
SEO是次要的,但我当然会提供一些必要的元标记

撇开搜索引擎优化所需的元标记问题不谈……用客户端JavaScript呈现它们是毫无意义的。如果只使用客户端JS呈现内容,那么搜索引擎根本看不到它

通过CDN加载HTML模板值得吗


再说一次,这要视情况而定。使用CDN可以加快静态文件的交付速度,但这是一项额外的费用,并且需要为站点提供更复杂的构建系统(因为您必须部署到多个服务器,并确保发布的URI匹配)。

这会使您的初始渲染速度变慢(浏览器针对渲染HTML进行了非常好的优化),这可能会影响你的搜索排名,而且缓存也不太合适。Twitter尝试了一种只支持JavaScript和JSON的架构,并最终返回到与JavaScript应用程序一起提供预呈现页面的服务,因为它提供了更好的感知响应时间。(同样,实际的响应时间并不一定更好,但用户可以更快地看到响应。)

这会使您的初始渲染速度变慢(浏览器对渲染HTML进行了非常好的优化),这可能会影响您的搜索排名,而且缓存的适用性也会有所降低。Twitter尝试了JavaScript-a
Dynamically loading JSON array containing the datas of the current page
Javascript libraries being loaded via CDN
JS files that contain HTML templates via CDN