使用wex5得到的一些教训
博主一直都是做web开发,前段时间有个小想法,想给自己做个android小应用(很小,功能特别简单)。
了解到可以用js直接做,貌似很简单,选用了wex5(基于codova插件)来直接开发。
最终发现比直接用java踩到的坑还多,这里总结下:
1、在w文件中写的css会被做加工,可能产生问题。
我在里面写了个h5动画效果,单独代码抽出来可以使用,放到wex5中就是不能生效,百思不得其解,我一直以为是哪里写错,或者和哪个效果产生冲突,想了两个晚上,还是没思路。把页面源码抓出来发给朋友帮忙看,朋友一下子就说明问题所在“某某地方应该要有px单位”。当真没想到,竟然是被编译软件去除掉的,我完全不敢设想是编译软件问题,还一直在寻找自己写的代码中的错误。
解决方法:把css写在单独的css文件里面(不和w文件同名),然后用资源引入,例如:<require xid="require1" url="css!$UI/xiangmu/animation"></require>
2、跨域问题。
wex5的页面,在调试的时候都是指向例如127.0.0.1:8080域名,而自己使用的后端服务域名假设为example.com,ajax访问是需要跨域的,我以为这都是前提,不能修改。于是做了很多工作来解决跨域问题:
I、服务端添加允许跨域访问的头(为了跟web比较像,放弃使用jsonp形式);
II、返回sessionId(跨域访问,cookie带不过来,使用ajax返回头读不到);
III、修改express-session中间件,使能直接query传递sessionID(这是express-session的一个坑,cookie带了加密,而我又不能直接读到cookie结果,所以只能修改它,这个方法很糟糕,很丑)
整个开发过程,让人很难受,浪费很多时间,方法却依然如此丑。
解决办法:看了wex5文档里面,建议ajax请求使用插件带的request请求方法,就无需跨域(还是那么丑)
我目前选择使用的是修改调试域名,直接使用自己的example.com域名,然后服务端对应wex5页面的更新请求全部使用304(not modify)返回。
总结:wex5并不是我所想象的能迅速开发出应用的(我以为就行浏览器功能加了本地页面,加了一些api)。整个技术栈还是比较深的。为了降低学习成本,我略过了官方文档,然而却带来的是自己屡次碰壁,把时间花在了各种旁门左道上面。
使用wex5得到的一些教训的更多相关文章
- WeX5学习笔记
目录 WeX5学习笔记... 1 1.轻松看透WeX5产品能力和技术... 1 2.WeX5可以怎么玩?... 3 一.纯本地App. 3 二.关联一个网站,希望默认就打开某页... 4 三.UI设计 ...
- 新人入职100天,聊聊自己的经验&教训
这篇文章讲了什么? 如题,本屌入职100天之后的经验和教训,具体包含: 对开发的一点感悟. 对如何提问的一点见解. 对Google开发流程的吐槽. 如果你 打算去国外工作. 对Google的开发流程感 ...
- 。。。欢乐捕鱼App WeX5 连接打包代理服务失败,请检查代理服务地址是否正确。。。
今天学习了WeX5,第一次使用,使用它打包一个Web App 欢乐捕鱼的时候,在最终打包生成Native App的时候突然报错了,说:"连接打包代理服务失败,请检查代理服务地址是否正确&qu ...
- wex5 实战 图片触摸放大移动插件easyzoom的使用与集成
一 前言 客户的需求就是上帝的召唤. 作为一个开发人员,或者软件从业者,客户的要求就是准则. 遇到一个客户,让我做一个图片放大,但是移动拖拽要定位精准.之前研究过一个hammer插件,多次尝试放大后的 ...
- wex5 实战 框架拓展之2 事件派发与data刷新
一 前言 讲完公共data,相信大家对框架级的data组件级绑定有了更新的认识,接下来我们继续深入,以求研究明白wex5的框架能力. 在一个web项目中,其实有一个data, 是基础框架必须的data ...
- wex5 实战 框架拓展之1 公共data组件(Data)
一 前言 wex5作为开发利器,框架本身的集成能力与拓展能力可谓简单强大.在学习过程中,对框架的拓展能力,需要通过实践来丰富.今天,我以实际工作中的实例,先来看一看,框架上的公共data组件的实现与用 ...
- wex5 实战 手指触屏插件 hammer的集成与优劣
前言 前几天,给客户做了一个图片点击放大,很简单,客户说能不能双手指缩放图片呢? 想到了hammer,不管好用不好用,总得试. 网上居然没有像样的中文文档和成熟案例,有的文写的鬼都看不懂.还是自已动手 ...
- wex5 实战 用户点评与提交设计技巧
最近遇到很多同学做毕业设计,其中有一项是用户点评与提交.功能并不复杂,同学们又不会,做为一个完整的功能,如果用wex5来设计开发,事半功倍.今天就以景区实战来向大家展示wex5的高效与强大.半天可以设 ...
- wex5 实战 省市县三级联动与地址薄同步
无论是商城,还是快递,都要用到省市县三级联动,和地址薄,今天就以实战来制作,难点有3个: 1:三级联动,有wex5组件实现,相对简单,实战里对行数据进行了拼接 2: 地址薄选项,利用inputSel ...
随机推荐
- JFinal - scheduler 插件做定时任务
我在项目中遇到一个需求:服务运行期间,数据库要定期去监测某表并且更新. 正好项目是使用 jfinal 做的,于是就用了 jfinal-scheduler 插件来解决(jfinal-scheduler ...
- Signatures of Mutational Processes in Human Cancer
http://cancer.sanger.ac.uk/cosmic/signatures#
- Mac系统下配置JDK环境变量
第一次用Mac做开发,在网上也搜索了一些环境变量配置的文章,在此总结一下以方便日后使用. 1.打开终端Terminal: 2.进入当前用户主目录,cd ~: 3.临时授权,sudo su: 4.输入密 ...
- cocos2dx解决苹果正版ipv6的问题
苹果官方出了新的规定,要求新上架的app都必须单独支持ipv6-only的网络. 具体的要求链接:https://developer.apple.com/library/mac/documentati ...
- 锁相关知识 & mutex怎么实现的 & spinlock怎么用的 & 怎样避免死锁 & 内核同步机制 & 读写锁
spinlock在上一篇文章有提到:http://www.cnblogs.com/charlesblc/p/6254437.html 通过锁数据总线来实现. 而看了这篇文章说明:mutex内部也用到 ...
- VB检测按键CTRL+C的次数
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As IntegerPriv ...
- 表单提交与后台PHP如何接口?
在网页中,常常有这样那样的表单需要提交,比如登陆,比如注册,比如查询,比如填写问卷.在这样的表单提交过程中,我们究竟向后台提交了什么,是以什么形式提交的,是一个很值得探讨的问题. 提交了什么——就是我 ...
- JAVA GUI布局管理器
边界布局管理器: a.布局方式:是把整个容器划分为五个部分.东西南北中,南北要贯通,中间最大 (不仅是中间的范围最大,权利也最大)当周边不存在的时候中间会占领周边,当中间不存在的时候周边不能占据中间 ...
- 使用scrapy创建工程
前提:先创建一个文件夹用来存放爬虫工程 创建项目命令: scrapy startproject <project_name> 例子: scrapy startproject myproje ...
- JavaScript进阶知识点(慕课)
JavaScript能做什么? 1.增强页面动态效果(如:下拉菜单.图片轮播.信息滚动等) 2.实现页面与用户之间的实时.动态交互(如:用户注册.登陆验证等) 一. 数组 var myarray=n ...