关于小程序的两个猜测: 1. 性能体验和 H5 几乎持平, 2.不能做出流畅的游戏。

2017-01-11 09:57:40 +08:00
 yulanggong
  1. 之所以性能和 H5 持平是因为他本身就是 H5 + JSBridge , 而不是 React Native 或 Weex 的 JS + Native 的方式。
  2. 因为微信没能开发出足够流畅的游戏引擎,就假借各种公众号之口说苹果不让做游戏。(前期还有宣传苹果不让小程序做直播,如今疼讯家直播就上了小程序。)
11849 次点击
所在节点    程序员
74 条回复
arron
2017-01-11 12:15:16 +08:00
@murmur 意思是用 cycript 可以把那个 WebView 容器选出来执行 HTML 相关的 js 代码, alert 能跑,那么其他 dom 自然没问题,虽然没细究,但是可以肯定。因为如果用 cocoa UI 去渲染,那么只需要用 JavaScriptCore 就可以了,根本不需要 WKWebView 。小程序这一套用 WebView 来渲染比用原生去做要好处理得多,别的不说,就 canvas 那一套规则就不容易搞。至于性能怎么样,就看使用场景了。
xjp
2017-01-11 12:21:19 +08:00
小程序是 native+html 结合的控件
spark
2017-01-11 13:01:08 +08:00
游戏可以做,有 Canvas 。
体验嘛,见仁见智。
Vanessa
2017-01-11 13:08:07 +08:00
所以小程序应该降温了么? 但我还是做了一个, https://hacpai.com/tag/book_share ,需要体验的可前往 https://hacpai.com/register?r=Vanessa 进行注册
yulanggong
2017-01-11 13:31:36 +08:00
morethansean
2017-01-11 14:03:45 +08:00
@murmur
@arron

问了内部的人,是 native 的。大概就是 native + html 结合吧,像楼主 append 里列的 非原生组件 的渲染。
em70
2017-01-11 14:25:13 +08:00
@yulanggong

@murmur

@arron

跑在浏览器里的不一定就是 HTML,小程序的渲染是微信自己用 js 开发的一套渲染引擎,没有用 HTML 渲染,效率比 HTML 高得多
phoneli
2017-01-11 14:43:42 +08:00
@em70 对的。
arron
2017-01-11 15:03:43 +08:00
@morethansean
跟安卓一样, native 那是顶部 navigation , alert , actionSheet 之类的。内容部分就是 HTML 。你那内部人估计也没搞清楚。
@em70 你猜的?

证据:

[choose(WKWebView)[0] evaluateJavaScript:"document.getElementsByClassName('desc')[0].innerHTML='Im webView'" completionHandler: nil];



arron
2017-01-11 15:11:11 +08:00
@em70 你不要告诉我小程序在 webView 容器里面基于 HTML 开发出了一套不需要 HTML 渲染,效率比 HTML 高得多的 UI 引擎!
em70
2017-01-11 15:18:31 +08:00
@arron 只是用了 webview 里的 js 引擎,用纯 js 绘制一个视觉控件,不行吗?
em70
2017-01-11 15:20:52 +08:00
@arron
就像页游,用 flash 渲染的,也没有用 HTML
sujin190
2017-01-11 15:23:35 +08:00
奇怪,早期的文档中确实写了是使用类似 reactnative 的方式渲染的,现在怎么没有了,不过真说起来这性能真的是不行,用 webview 渲染还真有可能。。
arron
2017-01-11 15:25:22 +08:00
@em70 楼主补充了。 https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/details.html?t=201715
iOS WKWebView , Android Mobile Chrome 。在 WebView 里面你不论是写 HTML 还是用 js createElement 那是一样的。谈不上性能差。况且小程序就是写的 HTML ,那个 wx-view 跟 div 是一个效果。
funCoder
2017-01-11 15:37:15 +08:00
试试用 Chrome 去调试 WebView 看看; https://geminiwen.xyz/2017/01/10/mini-program/
em70
2017-01-11 15:42:16 +08:00
@arron 你对 js 理解太局限了, js 并不是非要依赖 HTML 的,和其他语言一样,也是具备图形绘制能力的,完全可以自己绘制一个自己的界面。
jhdxr
2017-01-11 16:05:06 +08:00
@em70 js 的确并不依赖 html ,执行的时候也只需要 JavaScriptCore ( iOS 平台)即可,但小程序『是由 WKWebView 来渲染的』,那很明显是(部分)转成了 html ,最终由 webview 来渲染的。

之所以我加了个部分,是因为有些组件(例如上面有人提到的地图)就是 native 的


@sujin190 我也记得我以前看到过是全部以 native 渲染的,估计在实现上踩坑了,然后又得赶着上线,只能先这么用了
em70
2017-01-11 16:24:17 +08:00
@jhdxr WebKit 才是 HTML 渲染引擎, webview 只是一个集成多种引擎的容器。小程序如果是 HTML 的,应该可用 window 和 document 对象,但并不支持,所以也不能用 jQuery
rogerchen
2017-01-11 16:43:17 +08:00
@jhdxr
想要全 native 渲染基本就靠企鹅无限制的堆人力去做 binding ,而且 iOS 一放 beta 就开始全组加班的画面是不是太美了。。。
不过大厂有的是钱,说不定就这么搞 2333333
morethansean
2017-01-11 16:48:42 +08:00
@arron 再次确认了一下,是 native

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

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

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

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

© 2021 V2EX