大连应用软件小程序开发定制、小程序开发与HTML5应用( Web App)开发有一定的相似性,然而微信团队为小程序定义了新的文件格式,提供了微信底层API及基础组件,并对小程序的文件代码做编 译解析,所以微信小程序并不是传统意义的HTML5页面。具体到写代码上,小程序与 HML5的开发主要区别有以下几点。
1. Javascript的限制
通过传入字符串来执行代码的能力都禁用了。出于安全考虑,凡是通过传入字 符串来执行代码的能力都禁用了。具体被禁掉的原生功能有: new Function、eval Generator。这同时也比较有效地避免了类似HTML5中XSS的问题。禁掉的这些功能, 对我们开发来说影响比较显著的应该是字符串转json,以往我们都是通过 new Function、 eval来处理后台CGI的返回。(移动端一般封装在 zepto之类的框架中),小程序开发需要 改变一下具体实现。
与浏览器BOM( Browser Object Model浏览器对象模型)相关的API都没有。由于 小程序框架并非运行在浏览器中,所以 Javascript在Web中的一些能力都将无法使用, 比如 document、 window等,但在这些BOM中,对开发影响最大的应该是没有 cookie 因为其他功能例如 storage,在MINA中有类似的处理方法。而 cookie在Web开发中是 与后台登录相关的。小程序中是没有 cookie的,为了兼容目前大部分 Web App的登录管 里时使用 cookie的,小程序在请求发送时,客户端可以动态地给请求设置 Header发送报 文的 cookie。实现代码类似于如下:
注意 cookie本身不能在客户端进行读写
因为没有 cookie,HTML5中的CSRF( Cross-site request forgery,跨站请求伪造) 问题理论上是根本解决了。小程序是否存在其他客户端安全问题,尚需要技术与时间来 检验。
2.小程序开发相比HTML5的改进优化
登录方面:HTML5中,通过微信授权一般采用URL重定向的方式获取code;在小 程序中,通过wx. login获取code,这样避免了之前登录重定向的问题 存储方画:小程序用 storage替代了HTML5中的 totalstorage、 sessionstorage. stora 对每个小程序的大小是5M,支持同步和异步。 表现 微信支付路径不再受限。
3.小程序开发相比HTML5开发不方便的地方
不方便的地方有明显两点 每个页面需要手动在 app json中进行注册。
如果没有注册,是不执行该页面的。 打开的页面有5个限制,在开发时需要注意控制打开页面的数量。
另外,关于微信团队为小程序重新定义的WXML文件、WXSS文件的开发编写与 传统HTML、CSs文件的差异,我们会在后面的章节进行对比解析。
总体而言,微信小程序是一种介于原生App和 Web App的混合体。通过微信进行加 载,实现类似原生App的流畅性。相对原生APp来说,小程序更加轻量、更加实时、跨 平台;相对 Web App.来说,小程序资源离线,体验更流畅。