PULL跟SAX虽然都是基于事件的,但是两者最重要的区别应该是:

SAX可以认为是“PUSH“的,跟PULL相对。因为Parser在遇到特定事件源的时候会将数据传递给回调函数来处理,从这个意义上讲数据是”推送“给用户的,而PULL方式是遇到特定事件时由用户去从Parser中获取自己感兴趣的,感觉数据像是”拉“下来的。

还有一个区别是:在PULL式解析过程中(while循环里),可以退出循环;但是在SAX过程中,一旦开始解析就要解析完成。

另外,稍微扩展下:
目前主要存在两种解析和生成原理,一种是通过反射来匹配类名、属性名等信息,一种是直接使用jvm的字节码来进行操作,这两种方式的效率高下不言而喻,自然是二进制字节码效率更高。

更多相关文章

  1. Vue.js流程图插件 可自定义流程节点事件
  2. Node.js 事件循环完整指南[每日前端夜话0x9F]
  3. 分布式作业系统 Elastic-Job-Lite 源码分析 —— 作业事件追踪
  4. 招聘|北京字节跳动科技有限公司
  5. 如何正确使用Node.js事件[每日前端夜话0x4B]
  6. 现代浏览器探秘(part4):事件处理 [每日前端夜话(0x14)]
  7. 字节一面,面试官告诉我链表掌握的不熟练
  8. 关于Python圈近几天争论事件的一些思考
  9. Swoole自定义项目初始化事件处理的实现

随机推荐

  1. 如何使用jQuery选择列表中的最后X项?
  2. jquery为属性过滤器动态添加值?
  3. jQuery Datatable(V1.10.7) server side pr
  4. 如果没有附加,则隐藏本身
  5. 导入地址簿联系人,存储在数组中并保存到数
  6. 绑定和解除相同javascript函数的目的是什
  7. jquery不会对select/选项更改事件作出反
  8. jquery ajax和php实现返回值 json类型
  9. 使用jquery post发布PHP文件
  10. 如何使用jQuery增加字体大小的变化?