Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 脱机HTML的客户端与服务器端呈现_Javascript_Html_Performance_Rendering - Fatal编程技术网

Javascript 脱机HTML的客户端与服务器端呈现

Javascript 脱机HTML的客户端与服务器端呈现,javascript,html,performance,rendering,Javascript,Html,Performance,Rendering,我正在创建一个HTML页面形式的交互式报告,需要离线访问。这些选项中的哪一个会产生更好的性能 提前创建所有HTML(通过服务器端脚本)并隐藏除一个(登录页)之外的所有“视图”。当用户单击菜单项时,隐藏当前可见的视图并取消隐藏与其选择相对应的视图 将所有数据作为JavaScript变量/对象包含。当用户从菜单中选择某个内容时,使用模板引擎(如handlebar.js)创建所需的HTML 我还发现了其他一些文章,涉及客户端渲染和服务器端渲染,但没有针对离线应用程序的内容,这些应用程序无法向服务器

我正在创建一个HTML页面形式的交互式报告,需要离线访问。这些选项中的哪一个会产生更好的性能

  • 提前创建所有HTML(通过服务器端脚本)并隐藏除一个(登录页)之外的所有“视图”。当用户单击菜单项时,隐藏当前可见的视图并取消隐藏与其选择相对应的视图
  • 将所有数据作为JavaScript变量/对象包含。当用户从菜单中选择某个内容时,使用模板引擎(如handlebar.js)创建所需的HTML

我还发现了其他一些文章,涉及客户端渲染和服务器端渲染,但没有针对离线应用程序的内容,这些应用程序无法向服务器回拨以请求特定的数据点。在我的例子中,所有的数据(从几百到几千条记录)必须从一开始就包含在HTML中。

我会将数据和模板发送到客户端,并在客户端上呈现HTML,原因很简单-它可能工作得更快(当然这取决于您的实际数据)

首先,如果在服务器上预呈现HTML,则要传输的数据量通常要大得多。模板和原始数据会小得多,因此应用程序的加载速度会更快

其次,用户可能不需要所有呈现的页面。如果只使用了部分页面,那么在服务器上呈现所有页面的资源将被浪费


还有一点——如果所有内容都在客户机上呈现,那么应该很容易使应用程序完全无需服务器。您可以随数据、应用程序代码和资产一起发送json文件,在这种情况下,它完全可以在没有服务器的情况下工作(当然,这只是一个要点,如果此用例与您的情况相关)。

感谢您的回复!如果我们将服务器转移到等式之外的客户端传输时间,并且在HTML离线运行后只考虑页面加载时间,模板/原始数据仍然比预渲染HTML要快吗?很难预测什么会更快,你可以把数据取到客户端然后立即渲染所有的东西。这样以后就没有什么区别了。总时间将取决于服务器端渲染还是客户端渲染更快。但是,如果您有许多用户,则可以通过在客户端上渲染来减轻服务器的负载。