socket.io无法在html5 离线缓存的页面中正常使用
各位好,
最近在研究html5 离线缓存功能,发现当页面在缓存状态下访问时socekt.io不能正常工作。我在测试过程中发现,在缓存状态访问的页面中ajax 用get方法无法发出请求,必须改为post方法才行,后面看到socket.io客户端js存在用get方法请求ajax的情况,就把它改成了post方法,但仍然提示“无效”的请求,因为我对socket.io客户端Js不熟。所以想请教下大家,如何使socket.io能在html5 离线缓存中的页面中正常工作?谢谢!
1 回复
问题已暂时解决,将socket.io通讯协议改为websocket可解决问题,当前浏览器默认是通过xhr-polling协议通讯的。但改为websocket协议后不兼容它的浏览器将无法运行。我理解,将xhr-polling协议部分用ajax get方法改为Post方式及可解决问题,问题是对源码理解不深的情况下改成POST会有地方遗漏,同时存在POST方式将加大数据传输效率问题。望大家能提供更好的解决方案。