2016-08-01 103 views
1

我一直在做一个项目,我正在进行AJAX调用,从数据库加载100条记录,然后将其呈现在滑块上。准确地说,我要获取的数据是所有图像的“图像路径”,以及其他详细信息,例如“滑块缩略图的大小”,“要显示的缩略图的数量”等。加载动态HTML - 服务器端或客户端

对于这个数据列表,我有两个选项: 1.在服务器端生成HTML并将其发送给客户端,它将应用于滑块。 2.生成并发送json数据给客户端。解析这个json数据并生成Slider的Slides。

我很困惑使用哪种方法,以获得更好的客户端/服务器整体性能。谷歌搜索和阅读文章指出,使用json数据更快。但是,在执行一些初始测试以获取并渲染HTML显示之后,在服务器端生成HTML并将其发送到客户端进行渲染比将json数据发送到客户端并准备用于渲染的HTML要快得多。

如果有人会提出这个问题,那么服务器每小时点击4k-5k点左右就太棒了。

+0

我觉得JSON是不是将呈现的HTML数据更轻巧。所以我会选择2. –

+0

从服务器发送'html',它将使用一个请求和响应;并根据你的测试,会更快。 – guest271314

+0

由于我使用PHP,我将不得不将数据获取到数组中,然后在将它们发送到客户端之前解析它们。然后,我将不得不做json.parse,并使循环生成它们。另一方面,如果我只是在服务器端生成HTML,我将保存解析时间。这就是为什么我认为,与json相比,来自服务器的HTML数据呈现得更快。 –

回答

1

围绕这个话题有很多非常棒的讨论,但我倾向于在客户端渲染方面。我的推理是1.如果你的服务器经常被击中,服务器端渲染会减慢服务器的响应时间,并且可能导致很长的队列时间,以及2.因为你正在将请求与你的标记和样式分开,你可以在用户端有一个启动页面或一些等待动画,而不是在服务器正在编译所有内容时让它们坐在白色屏幕上。这只是我的看法,但我发现客户端渲染提供最好的UX以及从您的Web服务器卸载计算通常是一个好主意

+0

我唯一担心的是在客户端浏览器中会发生什么,速度很慢。在这种情况下,确保从服务器发送HTML将是一个更好的选择。 –

+0

虽然技术上会更好,但我确信这台电脑的用户非常习惯网站加载速度很慢,并且一般情况下,即使您发送HTML,也不能保证页面加载速度很快。海事组织最好为普通用户进行优化,而不是试图吸引1%的边缘案例(双向)。更不用说,如果客户端浏览器速度慢,那么他们可能会使用像IE7这样的文件或类似的东西,这将是一组完全无关的问题 – Jay

0

我喜欢这个问题的答案link。 简短说明它是什么(复制粘贴):

我两边一点,实际上是:

  • 当什么,我需要的JavaScript端的数据,我用JSON
  • 当什么,我需要的JavaScript端的表现上,我不会做任何的计算,我一般使用HTML

使用HTML的主要优点是,当你想更换一个完整什么从Ajax请求会在您的网页部分:

  • 重新建设JS网页的一部分(相当)硬盘

  • 你可能已经在服务器上的一些模板引擎那边是用来生成页面的第一个地方......为什么不用 重用呢?

我一般不真正考虑到至少在服务器上的“表演”的事情 侧,:

  • 在服务器上,生成HTML或JSON一些的一部分将不会有很大的区别

  • 关于通过网络的东西的大小:好吧,你可能不会使用数百KB的数据/ HTML ...使用gzip 什么你正在转移是什么将使最大的 差异(不在HTML和JSON之间进行选择)

  • 但是,可以考虑的一件事是您需要在客户端上重新创建HTML(或DOM 结构)从JSON数据...比较,为推动 HTML的一部分进入页面;-)