在服务器端渲染Raphael图表(SVG)或坚持使用ajax和客户端渲染?

时间:2013-09-22 16:44:35

标签: ajax asp.net-mvc performance client-server raphael

我有使用gRaphael库绘制一些图表的MVC3应用程序。我使用ajax从客户端提交输入,作为响应,我得到包含绘制图表所需的所有数据的Json。 我知道服务器端渲染是更快更好的方法但我也知道gRaphael库不支持服务器渲染开箱即用,它仍然需要在客户端执行一些JavaScript。我听说PhantomJS是一种解决方法,但我对它并不熟悉,我也听说有一些问题用它来进行SVG渲染。

所以我的问题是:

  1. 我是否应该尝试找到在服务器端呈现这些图表的解决方案(通过将渲染移动到服务器端,我是否会获得重大的性能提升)?
  2. 如果我应该,最好的做法是什么?

    提前致谢!

1 个答案:

答案 0 :(得分:1)

我有类似的情况但是反过来了。我的网站从用户那里获取一些输入,然后在服务器上呈现图像并将其返回到页面。我发现我的云计算账单很大,我想通过将图像渲染移动到客户端来减少它(使用Raphael)。服务器端处理也不太敏感。我不知道你应该如何渲染服务器上的图像。大多数.NET dll都设计用于WinForms或WPF,因此可能存在并发问题;我正在使用System.Drawing.Graphics。

我的问题是我不知道如何将拉斐尔图形发回服务器。

我建议您继续使用客户端渲染,因为服务器端太昂贵,而且它与System.Drawing.Graphics不能很好地协同工作。

另一种可能性是使用Silverlight,尽管我会坚持使用Raphael。