美文网首页Weex学习iOS视角我爱编程
weex页面addEventListener在弱网情况下监听不到

weex页面addEventListener在弱网情况下监听不到

作者: 十一岁的加重 | 来源:发表于2018-05-25 21:58 被阅读12次

    参照WeexSDK里的WXBaseViewController里的在控制器的viewDidAppear里发送了一个appear的事件通知,然后js里监听此通知就能知道js页面将要出现了,以便在页面出现时刷新一些数据,不管是push还是pop,但是在最近的一个生产问题是:wifi情况下页面请求正常,而在弱网情况下,js页面不会有响应,哪里是什么超时啊,也不会走,这些请求是放在了appear这个监听里,但是把这些请求直接写在created里就能正常,一直想了很久,最后定位到是原生发通知时,js页面还没有开始监听,所以把js监听appear通知的监听放在了weex页面最靠前的一个方法[beforeCreate]

    image.png
    可惜在弱网情况下还是不行。
    后面发现,是加载js页面时没有加载本地的,而是直接加载服务器上的js页面。
    所以就是在加载这个js页面时太慢,而原生已经发送了通知。
    于是解决加载本地js的问题,后发现是多级文件夹所导致。因为之前设计这一套流程时,没有考虑多级文件夹,而安卓是正常的,因为安卓在加载本地js文件时,是跟根据js页面名去递归遍历查找文件,而我设计时,觉得递归查找太费时间 ,就直接用第一级文件夹名拼接好js页面名,所以导致放在第一级的页面是正常的,而放在二级三级的在弱网情况下就不正常了,而随着项目Weex化越来越多分文件夹管理也是相当必要的,所以后面处理了下,就正常了。还有就是之前没有考虑到在没有网络的情况下启动app访问weex页面,导致是一片空白。也优化了下:在下载json文件失败后,尝试查找本地json文件,尝试读取zip包,尝试读取解压后的文件夹,修复后断网启动app也能进入weex页面了,当然也还是有很多场景ifelse需要去考虑和兼容的,小记一下。
    还有就是在本地调试时,json文件是没有必要的,render时也得处理优化下

    相关文章

      网友评论

        本文标题:weex页面addEventListener在弱网情况下监听不到

        本文链接:https://www.haomeiwen.com/subject/obxpjftx.html