javascript - 将大量数据从 Web 服务器传输到客户端

标签 javascript asp.net-mvc architecture html5-canvas

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.


4年前关闭。







Improve this question




我正在开始一个新项目,它将使用 HTML5 Canvas 呈现复杂的图形。

目前,我们有一个 Windows 窗体实现,我们希望将其迁移到 Web。因此,布局、绘图对象和所有绘图元数据都是在 C# 中生成的。我们只需要实现绘图,我们将使用 HTML5 Canvas 。

服务器端将是 ASP MVC。它将计算绘图模型,并将其发送给客户端。然后客户端将使用 Canvas 来表示数据。

问题是绘图模型有时可能很大。也许 10Mb-50Mb 的元数据。将所有绘图数据从服务器发送到客户端的最佳方式是什么?

将模型用于在 JavaScript 中创建绘图对象的页面中的脚本

这将是标准方式。我将使用 C# 中的绘图对象生成一个模型,然后将这些对象转换为 JavaScript。

  • 优点:易于实现
  • 缺点:页面会很重。

  • 从返回绘图数据的 Controller 返回 JsonResult

    例如,我可以使用 jQuery 来获取它。此选项失败,因为我达到了 maxJsonLength 属性。我知道它可以在 web.config 中更改,但这似乎不是一个好主意。 3.
  • 优点:易于实现,可以使用 ajax 从服务器加载绘图对象并向用户报告进度。
  • 缺点:更改 Web.config 中的 maxJsonLength 属性似乎不是一个好主意。

  • 使用服务器中的绘图数据生成临时脚本文件并将其包含在客户端页面中

    服务器会生成一个JS脚本文件中的绘图数据。然后服务器会将这个页面作为 JavaScript 包含在客户端页面中,因此绘图数据将被加载到客户端中。这种加载也可以使用 ajax 来完成。
  • 优点:就像下载一个文件,如果它很大,那不会有问题。
  • 缺点:更难实现。需要管理临时文件,我们需要知道文件何时传输,然后将其删除。

  • 其他选择

    任意 欢迎其他选择 ,因为我不是 HTML 编程方面的专家。

    最佳答案

    我认为我会采取一些不同的方法。我将使用 servicestack ,在这里我假设您已将您的商业轮胎分开。现在,我将使用 backbone js 而不是 Canvas 或 angular js .还有很多其他的 UI 生成框架。现在,使用 require js 之类的库,我只推送 UI 生成所需的详细信息,或者使用 UI 所需的 UI 推送 HTML。所以,这里的速度会更快,页面会更轻。一旦缩小的 Javascript 到达客户端,它将不会加载,而仅用于计算和呈现页面上的 html 部分。单页应用程序将与桌面一样快。差不多就这么多了。我希望这对你有用。我已经添加了链接,如果您需要更多详细信息,请告诉我。

    关于javascript - 将大量数据从 Web 服务器传输到客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13607715/

    相关文章:

    javascript - Bootstrap 3 : Nested tabs disappear when another tab is made active

    javascript - $error 在 Vuelidate 复选框中不会发生变化

    javascript - 解析多态 XML

    asp.net-mvc - 如何使用Visual Studio代码在ASP.NET Core中添加ASP.NET身份

    c# - 如何在单个事务下执行多个操作

    javascript - 如何从JS中的输入标签中删除相似的字符?

    asp.net-mvc - 返回 HttpPostedFileBase 以查看验证错误

    javascript - 如何将 JSON 对象数组传递给 MVC Controller ?

    ajax - 如何通过 Redux 触发 AJAX 调用以响应状态变化?

    java - 如何处理服务器中数据的时区差异,尤其是物联网平台