2010-05-19 58 views
5

我有一个不寻常的情况 - 我有一个带有复杂UI的嵌入式视频流设备,我需要使用嵌入式Web服务器通过Web浏览器来重现该UI。我正在考虑在C++后端上使用JavaScript/JQuery(我不是自己编写所有这些代码,我需要雇用人工作)。是否可以使用JQuery/JavaScript编写大量的客户端应用程序?

嵌入式web服务器远不如PC强大,所以我想写一个应用程序在浏览器中运行整个UI,并且只与服务器通信来传递新的程序设置,获取状态更新从设备,并控制视频播放。

换句话说,客户端得到一个大页面或少量大页面(有效地下载应用程序),应用程序维护重要的本地内存存储,并且一旦页面第一次加载,服务器就不会发送任何布局 - 有关。

该应用程序有两行选项卡可以导航〜40个菜单页面,拖拽选择控件以选取网格中的单元格,排序列表,大量标准数据输入选项,并且它应该能够控制高达16个嵌入式视频播放器(最好是VLC)。

这是可能的JavaScript/JQuery与C++后端?

+0

FWIW,现在浏览器中的复杂应用程序是非常有可能的。只是见证Gmail,Yahoo Mail等,所有这些都是完全在浏览器中运行的大量软件。 – 2010-05-19 20:30:26

+0

是的,你可以通过C++使用v8(另外,duktape是一个以C语言编写的嵌入式系统的JavaScript引擎)......事实上,linux发行版Slitaz(和其他一些)在busybox实用程序中使用纯shell脚本来配置它们(tazpanel)。我不知道你有什么样的硬件,但是如果有硬件加速的视频,使用curl的最小构建通过udp/tcp连接直接流/ dev/videoXX通常就足够了......剩下的应该只是一个简单的HTML和客户端JS的CSS的噩梦将视频放入HTML5播放器。 – technosaurus 2015-03-27 11:29:42

回答

3

Ext JS会在用户界面上节省很多,它可以在很短的时间内用丰富的控件创建非常复杂的布局。它甚至有自己的图形编辑器,您可以在添加处理程序之前创建UI。

它的API Documentation也非常好,它远胜于其他大多数图书馆。

而对于其他人来说,好吧,我很确定现在有可用的网络服务器,看看here - 其中大多数可能会暴露一个CGI应用程序。

+0

感谢您的链接,Ext JS看起来可能会非常方便,因为预定义的UI元素的数量。 – Ian 2010-05-20 19:27:20

+0

但是要打败其余的,它确实有缺陷,但没有比任何其他库大...... – 2010-05-20 19:29:25

1

这绝对有可能。查看Jquery的AJAX框架与服务器进行通信,然后查看some C++ web toolkits来制作一些轻量级的Web服务控制器。

1

一切皆有可能。

它值得吗?取决于你的要求。请记住:

  • 您必须拥有某种应用程序服务器支持。手动编码将占用资源。
  • 您还必须更新嵌入式设备上的C++可执行文件。您可能最终会支持多个设备。所以如果一些支持的设备增长,这可能会成为一个问题。
  • 与服务器上的php/ruby​​/perl开发人员相比,C++工程资源通常更加昂贵(并且使用便宜的C++工程师,您将支付2倍的bug修复)。
+0

请记住,这是一个嵌入式Web服务器,就像我所说的那样,它远没有PC强大。 PHP几乎不适合内存,Perl的性能是不可容忍的。这是我想要在客户端上完成复杂的“web stuff”的原因之一,所以服务器只需要进行视频流式传输,与设备固件接口等。 我的想法是扩展设备的本地Qt应用程序以获得更多服务器友好的API,然后在Lighttpd Web服务器下运行一个精简的C++层。 – Ian 2010-05-19 22:38:30

+0

我的第三颗子弹意思是“服务器端的php/ruby​​/pearl,没有嵌入”。除此之外,实现http服务器非常容易(读取传输),但提供应用程序支持更为复杂。总体来说,它归结为精简/厚客户端对话。 – Zepplock 2010-05-20 04:12:43

0

你可能想看看使用Dojo而不是jQuery。其真正的齿轮更多地朝着这种类型的东西。绝不意味着你不能在jQuery中做到这一点,Dojo只是更好地设计IMO来创建一个完整的JS应用程序。当然,应该指出的是,这也使得它的使用比jQuery更加复杂。

-1

您可以改为考虑Silverlight等丰富的客户端技术。复杂的用户界面是它的目标,开发体验比其他选择要好得多。

Silverlight doesn't require .NET在服务器上,并且可以通过简单的REST或SOAP服务轻松通信(请参阅gSOAP)。

+0

但是Silverlight确实需要客户端插件,特别是在Linux上我不想要求用户安装插件。 JavaScript随每个浏览器一起提供,并且“确保JavaScript已打开”对于想要使用该应用程序的用户来说没什么问题。 – Ian 2010-05-19 22:34:14

+0

这在你的问题中没有说明。我认为downvote有点苛刻。 – hemp 2010-05-19 22:55:43

+0

我没有downvote它,我没有注册这个网站。不过,我认为要求客户安装一个插件是不寻常的,应该提及。 – Ian 2010-05-19 23:53:12

相关问题