有没有一个可以动态加载依赖的模块,我希望是使用时加载,并且兼容server/browser

2013-06-12 12:36:53 +08:00
 refresh
requirejs和seajs都需要预先define,并在define声明dependencies。但我现在想这样:

1. web app加载
2. 用户执行某个操作,发现模块不存在,自动从服务器加载这个模块及依赖

有没有成熟的,松散耦合的解决方案?最好是兼容node.js,例如直接用require("module")这样的方式就可以。

有一个browserify可以,还有一个webpack,但似乎需要最终打包成一个文件。
web components应该可以解决这种问题,但是太超前了
meteor也太超前了

求一种简单稳定的解决方案
4619 次点击
所在节点    Node.js
5 条回复
sun391
2013-06-13 10:04:05 +08:00
显然要打包的,几个文件倒不是关键,但是要一起加载全。

可以参考我自己搞过的一个 https://github.com/sunlt/stitcher
refresh
2013-06-13 10:32:36 +08:00
@sun391 一起加载全显然不合理,大点web app,按需加载比较好。
建议项目加上中文的readme,呵呵,要不就commit也是英文 :P
sun391
2013-06-13 11:44:50 +08:00
@refresh 按需加载体验不好,需要用户不时的等待,索性一起加载全反倒好些,我做过最大的webapp js+模板 源码1000k+ ,合并、压缩、gzip过后也就200K不到,完全可以接受。

原先就是按需加载的,粒度分很细,结果就是需要不停的等待。
jinwyp
2013-06-21 13:58:25 +08:00
其实动态加载问题很多, 用户体验也不好
imdoge
2016-01-13 15:54:27 +08:00
@sun391
请教一下, browserify 是不是不能按需加载呢?编译的时候全打包成一个文件了
另外如果是 SPA 这样的,比如 angular 应用,如果很多个子页面,首次加载不是会加载很多可能根本用不上的 js 吗
这么久了还回复不好意思哈。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/72121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX