开发者社区> 管振纬> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用jspatch进行热修复的实战总结

简介: 最近正式在线上项目中集成了jspatch进行热修复,这里做一个简单的总结。 工具篇: 首先,用xcode来编辑js非常困难,基本上没有缩进,完全需要手写;经过研究发现使用 Sublime text3 结合 jsformat 插件,可以很好的编辑js脚本。
+关注继续查看

最近正式在线上项目中集成了jspatch进行热修复,这里做一个简单的总结。

工具篇:

首先,用xcode来编辑js非常困难,基本上没有缩进,完全需要手写;经过研究发现使用 Sublime text3 结合 jsformat 插件,可以很好的编辑js脚本。

一般来说,我们可以使用JSConvertor对js进行转换,然后在sublime text中进行编辑和格式化,通过xcode run代码来查看效果。

ps: jsformat 快捷键: The default key binding is "ctrl+alt+f"


一次热修复实践中遇到的转换问题:

1. js是动态类型的语言,因此所有的类型转换代码全部需要删除掉。

2. 注意不要遗漏defineClass。

3. 所有的枚举或是宏需要用值来替换。

4. 判空不要和null比较,而是直接用(xxx)和(!xxx)。

5. selector直接替换成字符串即可。

6. console.log("testing3");

这样的格式用来打印debug日志;建议在代码的分段都打印一些日志,可以用来判断是什么环节的问题。

7. 工具自动转换会自动去掉一个原来的@符号(在字符串拼接等情况下要注意),这个时候需要手动加回去。

8. stringwithformat只支持%@。

9. nsstring、array、dic等注意类型,js和oc类型不同,必要时使用.toJS()来转换到js.

10. block 作为参数传递的时候需要手动转换其类型,具体参考jspatch的文档。



上面说的其实也都是一些基本的东西,大家遇到问题去查找官方文档对应的wiki,耐心一点就可以。

https://github.com/bang590/JSPatch/wiki/JSPatch-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95#%E8%A6%86%E7%9B%96%E6%96%B9%E6%B3%95

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《前端实战总结》之使用CSS3实现酷炫的3D旋转透视
3D动画效果现在越来越普及,已经被广泛的应用到了各个平台,比如阿里云,华为云,webpack官网等。它可以更接近于真实的展示我们的产品和介绍,带来极强的视觉冲击感。所以说,为了让自己更加优秀,css3 3D动画必不可少。
155 0
阿里云云冬季实战营学习总结
阿里云云冬季实战营学习总结
22 0
GDB索引:更快的速度探索互联数据的奥秘
阿里云图数据库GDB对于用户点边的每一个属性都会自动创建索引信息,减少用户额外的索引操作。同时,用户也可以根据访问场景通过GDB支持的标准图查询语言Gremlin动态地创建复合索引、唯一索引和点中心索引等其它类型的索引来加速特定的查询。
1136 0
java日志规约及配置示例终极总结
java日志规约及配置示例终极总结 目录 什么是日志 常用日志框架 日志级别详解 日志的记录时机 日志使用规约 logback 配置示例 loh4j2 配置示例 1、什么是日志?   简单的说,日志就是记录程序的运行轨迹,方便查找关键信息,也方便快速定位解决问题。
2965 0
《Ext JS实战》——1.7 小结
通过这部分对于Ext JS的介绍,已经知道了如何用它构建健壮的Web应用程序,或者和现有的Web站点集成。也知道如何和市面上的其他流行框架相权衡,也知道它是唯一基于UI的框架,包含类似Component、Container、Layout以UI为中心的支持类。
1342 0
【D3.js 学习总结】12、D3布局-集群图
# d3.layout.cluster() 集群图是一种用于表示包含与被包含关系的图表。 #### 集群图(Cluster)的API说明 * cluster.children - 取得或者设置子节点的访问器函数。 * cluster.links - 技术树节点之间的父子连接。 * cluster.nodeSize - 为每个节点指定固定的尺寸。 * cluster.node
2108 0
【D3.js 学习总结】11、D3布局-弦图
# d3.layout.chord() 弦图是一种用于描述节点之间联系的图表。 #### 弦图(Chord)的API说明 * chord.chords - 取回计算的弦角度。 * chord.groups - 取回计算的分组角度。 * chord.matrix - 取得或设置布局需要的矩阵数据。 * chord.padding - 取得或设置弦片段间的角填充。 * cho
3028 0
【D3.js 学习总结】20、D3布局-捆图
# d3.layout.bundle() ![](https://img.alicdn.com/tps/TB19Q82LXXXXXawXVXXXXXXXXXX-500-500.png) 下图是航班查询网站全球航班雷达(FlightRadar24)显示的今日长三角地区的飞机飞行图: ![](https://img.alicdn.com/tps/TB1jp4WLXXXXXaraXXX
3232 0
JNDI、数据源、数据库连接池、JDBC 总结篇
整理自文章:http://www.cnblogs.com/lijiews/p/3529906.html 现在很多WEB服务器(Weblogic, WebSphere, Tomcat)都提供了DataSource的实现,即连接池的实现。
1240 0
+关注
管振纬
资深移动开发者
文章
问答
文章排行榜
最热
最新
相关电子书
更多
基于webpack和npm的前端组件化实践
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载