V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
youla
V2EX  ›  程序员

不超过 150KB 的网页项目,除了 jquery 没别的办法了吗?

  •  2
     
  •   youla · 2020-12-19 15:14:59 +08:00 · 13205 次点击
    这是一个创建于 1216 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做路由器的管理界面,生产的模块可以用于存放网页的区域,容量只有 150KB 。

    关键还要好看。。

    第 1 条附言  ·  2020-12-19 20:54:27 +08:00

    又上下翻了几个来回,周末有得玩了~~

    第 2 条附言  ·  2020-12-20 02:10:11 +08:00

    都玩不过来了~~又抚摸键盘到凌晨,这几天本来没什么事做,现在有做不完的事了!

    我要加油学学学,成为大神不是梦(三和)!!!凌晨安了 💓

    第 3 条附言  ·  2020-12-21 09:25:24 +08:00

    什么时候做web用nginx都要是常识了?不就对着文档搜着教程配置吗??怎么还搞得那么厉害一样??

    我一直用的iis,不需要nginx,没什么问题吧???然而这个模块里是定制的HTTP Server,我也改动不了,也不想去麻烦别人公司的。。

    第 4 条附言  ·  2020-12-21 09:26:51 +08:00

    上面的回复是针对设置gz响应头的

    第 5 条附言  ·  2020-12-21 12:54:19 +08:00

    大家说的我基本都跑了hello, world!有的可以打包很小的,貌似要ts写,奈何自己不会typescript,有点小尴尬~

    决定了用pure-css写界面,其他的就原生js吧,后续可能会被一些图表之类的需求搞得很头痛!!!!

    第 6 条附言  ·  2020-12-21 12:56:52 +08:00

    最后在大胆的伸一次手,有没有类似jquery,但是很小的库,因为担心ie11可能不兼容某些js写法,比如document.body.style='',例子,我一般也不这么写...

    第 7 条附言  ·  2020-12-21 14:16:35 +08:00

    pure-css + zepto

    太适合萌新了......

    埋头苦干!!!

    第 8 条附言  ·  2020-12-23 12:16:49 +08:00
    昨天写项目时,我终于知道我为什么要用 jquery 了,因为我想起来模块内置的 api 返回的内容是 html 格式,所以要用 jquery 操作 dom !
    134 条回复    2020-12-23 14:07:30 +08:00
    1  2  
    youla
        101
    youla  
    OP
       2020-12-20 19:25:06 +08:00
    @hronro 直接存 gzip,貌似要 web 服务器也支持吧?


    @SilentDepth 我说的是#97 楼,不太理解你说的这个是什么意思
    wangxiaoaer
        102
    wangxiaoaer  
       2020-12-20 19:26:44 +08:00 via iPhone
    什么路由器,避下坑
    SilentDepth
        103
    SilentDepth  
       2020-12-20 19:29:03 +08:00
    @youla #99 我说的「路由」指的是你上面示意图里的 menu,也就是 SPA 的 navigation 。把所有子视图(子页面)都渲染好然后用 display 来控制显隐当然可以,只是在导航影响状态和视图生命周期时,你终归还是要实现一个(前端意义上的) router,那么为什么不用现成的库呢
    SilentDepth
        104
    SilentDepth  
       2020-12-20 19:31:03 +08:00
    @youla #101 你可能 block 了某个人。我的「如果路由器没有 WAN 呢」是回复那个人的
    hronro
        105
    hronro  
       2020-12-20 19:38:58 +08:00
    @youla #101
    你们资源这么紧张,还用第三方 WEB 服务器吗,我以为你们都是自己写的 HTTP 服务呢?
    第三方的 WEB 服务器,反正 NGINX 是支持的,如果你们自己写的 HTTP 服务的话,那就更简单了
    SilentDepth
        106
    SilentDepth  
       2020-12-20 19:53:54 +08:00
    @youla #101 @hronro #105
    不一定需要 server 端支持 gzip 。浏览器只看 Response headers 里有没有 Content-Encoding: gzip 。Server 端准备好这个字段,直接提供预压缩的 gzip 文件也可以实现 gzip 的效果
    youla
        107
    youla  
    OP
       2020-12-20 21:55:26 +08:00
    @hronro web 是提供模块公司写的,我周一去问问吧。


    @wangxiaoaer 你用不上,别张口闭口就是坑~~ tplink 缩水那么严重还不是照样用,就像我看到这个回复时。
    我就觉得我先得避开你这个坑~~
    mingl0280
        108
    mingl0280  
       2020-12-21 07:07:53 +08:00
    @youla 路由器里面是啥根本不重要,只要浏览器头里面有 deflate 或者 gzip 就行,你把 js 文件压缩成 gz 了以后丢给浏览器的时候只需要头里面带 gzip 就行了。
    mingl0280
        109
    mingl0280  
       2020-12-21 07:13:09 +08:00
    @Pi7bo1 我也看傻了,这楼主基本没有常识啊……
    youla
        110
    youla  
    OP
       2020-12-21 09:03:15 +08:00
    @mingl0280 我大概知道 web 服务器可能要设置响应头,这就没常识了???
    youla
        111
    youla  
    OP
       2020-12-21 09:03:45 +08:00
    @mingl0280 你以为的尝试是什么??我会 perl 我说你不会 perl 就是没常识??
    youla
        112
    youla  
    OP
       2020-12-21 09:15:29 +08:00
    @mingl0280 测试了,没响应头就是下载,还路由器里面是啥不重要,你能不能测试过再来说话啊
    galikeoy
        113
    galikeoy  
       2020-12-21 09:19:10 +08:00
    @mingl0280 #109 对于 web 开发,http 协议和传输压缩,nginx 配置就是常识不要和他争论,他可以一堆问号乱七八糟的整死你,
    youla
        114
    youla  
    OP
       2020-12-21 09:21:36 +08:00
    @galikeoy 关键我不用 nginx,我一般用 iis 你是不是又觉得我一堆问号整死你了??难道上面说对了??
    lff0305
        115
    lff0305  
       2020-12-21 11:42:14 +08:00
    话说路由器的管理界面这类东西不需要追求什么 UI 吧, 简单易用兼容性强不就行了?

    几年前做过类似的东西, 被客户内网的 Win Server 2003 自带的 IE 给坑了
    KuroNekoFan
        116
    KuroNekoFan  
       2020-12-21 11:59:15 +08:00 via iPhone
    楼主其实问题描述的还比较明确,估计后来被网友的回复整懵了
    zjsxwc
        117
    zjsxwc  
       2020-12-21 12:34:41 +08:00
    最多存放 150k,也就大概 3500 行代码的样子,
    建议不用图片,用原生 js 功能,这样就不依赖三方库了,
    三方库太大了,vue1.x 要 70k 、jquery 要 80k,引入后就没地方写业务代码了。
    SilentDepth
        118
    SilentDepth  
       2020-12-21 13:22:12 +08:00
    @zjsxwc #117 gzip 啊,压缩后也就 20 KB 。少量小尺寸图片也还凑合,不过对于路由器后台确实不太刚需
    KouShuiYu
        119
    KouShuiYu  
       2020-12-21 13:23:43 +08:00
    不用 ui 库就行了
    SilentDepth
        120
    SilentDepth  
       2020-12-21 13:25:37 +08:00
    针对主楼的第 6 条附言:jQuery 语法的小体积实现,就 Zepto 吧,gzip 后不到 10 KB 。不过目标是 IE11 的话,没什么 JS 写法的问题吧,不是有 Babel 吗。如果担心 Webpack 是负担,推荐 Parcel 。
    youla
        121
    youla  
    OP
       2020-12-21 14:05:42 +08:00
    @SilentDepth 我记得 ie11 貌似不能 style.xxx ,要用 style.setProp..或者 setAttribute,还有 document.body.append(),要写 appendChild,你回答这么多我很谢谢你为我节省了不少时间,马上去看看 zepto~~,最后说一句:"5LiN6L+H5bCx566X5L2g6ZSu55uY5pWy54OC5oiR5Lmf5LiN5Lya5ZKM5L2g5LiK5bqK55qELg=="
    SilentDepth
        122
    SilentDepth  
       2020-12-21 14:25:11 +08:00
    @youla #121
    IE11 支持这种写法。可能部分属性不支持 inline 声明,但 DOM API 的兼容可以交给 jQuery/Zepto,开发者几乎不需要操心。
    另外注意 Zepto 支持到 IE10,再低的恐怕你还是要考虑 jQuery 。以及如果你确实不需要支持低版本 IE,私以为使用现代框架是更好的选择……当然,具体还要看你的需求和限制。
    TomatoYuyuko
        123
    TomatoYuyuko  
       2020-12-21 14:39:26 +08:00
    youla
        124
    youla  
    OP
       2020-12-21 14:41:56 +08:00
    @TomatoYuyuko 这些我都会~~有点小尴尬~~主要还是懒
    zjsxwc
        125
    zjsxwc  
       2020-12-21 14:52:37 +08:00
    @SilentDepth

    gzip 这个传输 size 就别说了,毕竟楼主自己都说了 http sever 模块不是他自己能控制的,楼主描述的需求是本地存储 size 最大 150k 。
    youla
        126
    youla  
    OP
       2020-12-21 16:31:40 +08:00
    @zjsxwc 看到这个回复,我好感动,国内这些个合作方,添个 http 头我本来是不想去说的,但我还是想尝试下,结果人家直接说起采购的事情了,这不就是程序里面添几个字符串吗,还说要大批量采购才能给我们做,恶心!!!
    youla
        127
    youla  
    OP
       2020-12-21 16:33:45 +08:00
    @zjsxwc 我本来预想到的也就是这个结果!所以看到说 gzip 压缩的我就蛋疼
    lloovve
        128
    lloovve  
       2020-12-21 16:46:08 +08:00 via iPhone
    什么芯片?很多都开发 sdk 带界面,如果是 8266 那种自己撸一下也不复杂
    mingl0280
        129
    mingl0280  
       2020-12-23 11:59:44 +08:00
    @youla 你的 http server 模块到底能不能设置 header ?不能设置 header 发到客户端的 header 是默认生成的还是根本没有?如果根本没有你可以直接在 gz 文件头前加上 http headers 作为整体发送到客户端啊!
    youla
        130
    youla  
    OP
       2020-12-23 12:13:39 +08:00
    @mingl0280 header 肯定有默认的,只是改就完全改不了,写在程序里的
    youla
        131
    youla  
    OP
       2020-12-23 12:15:57 +08:00
    @mingl0280 有时候不在一个频道上就以为怎么样怎么样可以~扎心
    mingl0280
        132
    mingl0280  
       2020-12-23 12:23:15 +08:00
    @youla 你可以自己写个 http server 然后把原版的干掉。具体的话 tinyhttpd 就可以整,然后你想干啥干啥咯……
    youla
        133
    youla  
    OP
       2020-12-23 14:03:35 +08:00
    @mingl0280 不是一个软件,没有操作系统的。
    youla
        134
    youla  
    OP
       2020-12-23 14:07:30 +08:00
    @mingl0280 确实我以前也以为 web 服务器就必须要 LAMP,LNMP 之类的。不过像这种开发模块完全是自己实现的一套嵌入式程序,想改不存在的,技术含量没多少,就是代码看不到~~~~
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4563 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 04:02 · PVG 12:02 · LAX 21:02 · JFK 00:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.