【发布时间】:2010-05-29 02:56:27
【问题描述】:
我想到了一种用于网络应用程序中的图像查看器的方法,并且想要进行健全性检查以及你 stackoverflowers 可能有的任何想法。
以下是简要总结: 我正在开发一个 ASP.NET MVC 应用程序,该应用程序将在我公司的零售店中运行。尽管它是一个 Web 应用程序,但我们拥有商店机器并可以控制它们。我们在商店机器上运行了一个“windows 代理”,我们可以通过 javascript 从浏览器与其对话(它是一个 WCF 服务,我们的网络应用程序有权从浏览器与其对话)。
其中一个网页需要是一个“图像查看器”页面,其中包含一些常见的功能,例如旋转和缩放。
现在,有一些提供旋转和缩放的 WebForms 控件。但是,它们占用服务器资源并在服务器和浏览器之间产生大量流量。例如,Rotate 函数将导致对服务器的 ajax 调用,然后生成一个写入 .NET Canvas 对象的新图像,然后将其写入服务器上的文件,然后从 ajax 返回在浏览器中调用并刷新。
通常,这是一种很好的做事方式。但在我们的例子中,我们有代码在我们可以通信的商店机器上运行。这导致我考虑以下方法:
- 当用户要求查看图像时,我们会告诉“Windows 代理”将其从我们的图像服务器下载到存储计算机。
- 然后我们将浏览器重定向到我们的图像查看器页面,该页面将从我们刚刚写入存储机器的本地文件中提取图像。
- 当用户点击“Rotate”时,我们会在浏览器中让 JavaScript 代码调用我们的“windows agent”软件,要求它执行“Rotate”功能。
- “windows 代理”使用以前在服务器上使用的相同类型的图像控制进行旋转,但现在在商店计算机上这样做。
- 浏览器中的 Javascript 然后刷新页面上的图像以显示新旋转的图像。
缩放和类似功能将以相同的方式实现。
对于最终用户而言,这似乎更加高效、可扩展且响应迅速。但是,我从来没有听说过这样的事情,主要是因为在客户端计算机上很少有这样的 Web 应用程序和“Windows 代理”组合。
你怎么看?可行的?合理的?我忽略的任何陷阱或您可以看到的改进/建议?有没有人做过类似的事情,愿意提供经验的智慧?
谢谢!
【问题讨论】:
-
应该是一个社区维基。
标签: javascript asp.net-mvc ajax image canvas