V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
mingff258
V2EX  ›  JavaScript

求助,嵌入式设备内嵌一个 web app,用什么前端框架合适?

  •  
  •   mingff258 · 2016-12-12 14:22:07 +08:00 · 6889 次点击
    这是一个创建于 2934 天前的主题,其中的信息可能已经有所发展或是发生改变。

    支持 PC 访问类似于 TPLINK 等路由器的配置界面,需要查看数据、查看简单图表。 看了下貌似有很多方案, React 、 Vue 、 Angularjs , JQuery 等等,头大…… 只会基础的 Html 和 JavaScript ,哪个容易上手? 资源放在嵌入式设备里面,所以追求轻量化,最好能兼顾移动端的

    27 条回复    2016-12-13 18:47:12 +08:00
    wobuhuicode
        1
    wobuhuicode  
       2016-12-12 14:39:00 +08:00
    刚毕业的时候做过路由器的控制界面,用 JQ + bootstrap 三天交货。图标用 chart.js 。不过那时候还没有什么鬼 react/vue 的东西。感觉如果新手的话, JQ 还是比较友好的,兼容性也说得过去
    ZOwl
        2
    ZOwl  
       2016-12-12 14:42:36 +08:00
    轻量化的还是选择 Vue 好一些,兼顾移动端,可以参考这个: http://getvum.com/
    Miy4mori
        3
    Miy4mori  
       2016-12-12 14:47:56 +08:00 via Android
    java 写的多的话 ng2 好上手,看文档 vue 也很好上手, react 不想多说,坑多,当然,最快最简单的还是 jq ,毕竟不折腾
    southwolf
        4
    southwolf  
       2016-12-12 14:57:00 +08:00
    直接套个 bootstrap 现成模板完事
    Ahri
        5
    Ahri  
       2016-12-12 15:21:18 +08:00
    React 门槛高,不想入坑不推荐。你这种用传统的后端渲染就行了吧。
    learnshare
        6
    learnshare  
       2016-12-12 15:32:17 +08:00
    有一点很重要,代码量一定要小,小,小。

    我记得之前做路由器的时候,只有几百 K 的存储;
    而且静态资源传输也会影响路由器性能吧。

    另一个难题是路由器没有 HTTP API (自己定制开发就另说了),所以一般是后端程序直接驱动 Web 内容(连渲染模板都算不上)。

    简单点,精简的 Bootstrap css + jqLite 如何?
    Shazoo
        7
    Shazoo  
       2016-12-12 16:17:32 +08:00
    嵌入式设备其实无需太多在意前端框架的量级。

    因为,即使使用 gohead 、 boa 之类的嵌入式 web server ,对前端来说,也几乎是透明。

    只要控制好,不需要加载过多文件就好了。

    举个例子,你页面里面有 1 个图片,一个很重的 jQuery ,对嵌入式设备来说,开销其实要比 10 个图片,一个轻量级的 vue 来的省。


    另,欢迎来到 C++写 CGI 的世界~~~呵呵
    q397064399
        8
    q397064399  
       2016-12-12 16:56:30 +08:00
    jquery 吧,发布后反正也没打算更新了,
    而且用户更新路由器软件的机会很小,自动更新会导致断网等情况,客户肯定是不愿意看到的
    q397064399
        9
    q397064399  
       2016-12-12 16:57:06 +08:00
    @Shazoo 一般都是 lua 吧,谁会脚本程序也脑残到用 C++ 不是作死么?
    aleen42
        10
    aleen42  
       2016-12-12 16:59:48 +08:00
    都既然是嵌入式系统的 app , 你还引用框架= =。选型之前要考虑,你的嵌入式设备能消耗不?不然,就会得不偿失。
    q397064399
        11
    q397064399  
       2016-12-12 17:01:07 +08:00
    @learnshare 现在一般是 8M flash 起步吧, 16M 也不贵,而且 容量越大 软件开发的成本越低,毕竟可以上 linux 了,开源一大抄
    倒是一些存储空间不能看的路由器 用的 VxWorks 简直要吐血
    q397064399
        12
    q397064399  
       2016-12-12 17:01:35 +08:00
    @aleen42 不消耗,渲染都是浏览器完成,路由器只负责数据跟文件
    lalalakakaka
        13
    lalalakakaka  
       2016-12-12 17:08:33 +08:00
    参考 openwrt 后台

    用 bootstrap+jQ
    kohos
        14
    kohos  
       2016-12-12 17:09:15 +08:00
    如果觉得 jQuery 文太大( 84K )可以换 Zepto ( 9.6K ),用法和 jQuery 一样
    mingff258
        15
    mingff258  
    OP
       2016-12-13 08:53:19 +08:00
    @learnshare 我用 C++基于 http_parser 写了个简单的 HTTP Server ,用起来倒是够用
    mingff258
        16
    mingff258  
    OP
       2016-12-13 09:02:30 +08:00
    @Shazoo 百度了下 CGI ,第一次听说这名词……确实是用 C++写了个 HTTP Server ,然后对外提供 json 格式的数据,方便客户端获取数据
    mingff258
        17
    mingff258  
    OP
       2016-12-13 09:06:20 +08:00
    看大家的回复,看来 bootstrap + jQuery 组合推荐较多,这下有重点了,哈哈
    mingff258
        18
    mingff258  
    OP
       2016-12-13 09:10:39 +08:00
    @aleen42 引用框架写得快嘛,而且成熟的方案美观易用。我的设备只是存储静态文件,然后发给浏览器执行
    mingff258
        19
    mingff258  
    OP
       2016-12-13 09:14:59 +08:00
    @Ahri 后端渲染,也是第一次听说,原谅我前端知识的匮乏……我的情况应该是属于前端渲染,设备只存静态文件,浏览器请求文件后负责后续的任务。
    aleen42
        20
    aleen42  
       2016-12-13 09:21:40 +08:00
    @mingff258 嗯。其实我觉得不需要引用,一来省地方,二来页面应该不会有太复杂的逻辑
    mingff258
        21
    mingff258  
    OP
       2016-12-13 09:22:12 +08:00
    @q397064399 现在弄了块样板 128M nand flash , ARM+Linux ,但后续出于成本考虑可能会砍掉变小。空间不足的情况确实很头疼,之前有个要求把 16M falsh 弄成 8M ,然后各种砍砍砍,搞得要吐血。
    learnshare
        22
    learnshare  
       2016-12-13 10:53:14 +08:00
    @mingff258 根据实际的存储空间要求, Bootstrap 和 jQuery 也可以做必要的精简
    Shazoo
        23
    Shazoo  
       2016-12-13 11:47:01 +08:00
    @q397064399 嵌入式设备使用 C/C++写 CGI 是很常见的。脑残这词可不对哈。举个例子,很多 CM3 、 CM4 的控制台都是 web service 。一般都是用 C/C++来实现 CGI 的。

    @mingff258 个人经验推荐 boa ,这个写 cgi 会比较简单。量级也很轻。 gohead 也不错,可以试试。

    线程安全很重要,小心些哈。
    Ahri
        24
    Ahri  
       2016-12-13 13:17:03 +08:00
    @mingff258 没太懂,你前端数据从哪里读?
    mingff258
        25
    mingff258  
    OP
       2016-12-13 14:52:27 +08:00
    @learnshare 好的,我先学下这两个框架

    @Shazoo 看了下 BOA 好像好久没更新了,但简单轻量; gohead ,应该是 goAhead ,比较新,功能也比较全,也会大一点。当初怎么都没发现……刚开始的时候脑子一热,入了 libuv 的坑,然后想反正都入坑了,自己再干脆写个合适的 HTTP Server 算了,于是……已经遇到过线程死锁的问题了,还好解决了。目前还凑合,已经写了个配套的 Android APP 用着。但缺了 PC 上面的客户端,于是就想通过 Web APP 来实现,省去了安装过程,还有跨平台的优势。

    @Ahri 发给浏览器的数据还是来自设备,只不过都是 json 纯数据,第一次请求静态文件后就不再包含 html 等界面代码
    q397064399
        26
    q397064399  
       2016-12-13 18:45:53 +08:00 via iPhone
    @Shazoo sorry 用词不当了,
    只是很多场景 像 openwrt 都是 lua 做 http 应用的
    q397064399
        27
    q397064399  
       2016-12-13 18:47:12 +08:00 via iPhone
    @mingff258 如果是路由,建议直接从 op 改,不过 op 这么多年 确实不好改
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5799 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:14 · PVG 14:14 · LAX 22:14 · JFK 01:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.