IE10开发中会遇到的

2012年微软做的最有诚意的一件事就是对HTML5的支持了:

a) IE10对HTML5很好的支持,彻底洗刷了IE9稚嫩残缺的形象,绝大多数为Webkit优化的网页都可以完美的在IE10上运行,且性能非常的好,直接秒杀其他浏览器。做web应用,最担心的就是性能问题,特别是游戏类型的应用。在js性能被人四处诟病时,IE的表现给开发者打了一剂强心针。

b) 把js提升到原生语言的地位,可以直接调用底层服务。Win8中应用分为桌面应用与Metro应用两种模式,桌面应用中js还是只能跑在浏览器中,但是如果打包成Metro应用,就可直接访问WinRT(通过WinJS,WinJS只用于WinRT环境,不能用于浏览器中)。从此js就是正规军,不再是游击队了。


以上是一些简单介绍,具体可参考官方文档,这里不多说了,直接开始正题。以下是开发游戏过程中遇到的问题及解决方案,不是百科全书,可以看作cookbook,欢迎补充。

1. localStorage

IE9开始即支持localStorage,但是不支持本地环境。在本地运行访问localStorage的网页时会报错,这点很让人困惑,但是知道原因就好办了,解决方法很简单,建个http服务器,访问http网页即可。

2. 动态html内容

如果你的html内容是动态生成的,那么需要注意IE10的安全限制。在桌面环境中没有这个问题,但如果是Metro环境这样做就有问题了。老话常说的,能力越大,责任也越大。在Metro环境中,js可以直接访问WinRT,这是js能力的提升,但是麻烦也来了。IE10不允许生成包含脚本的html内容,这时候直接使用innerHTML修改DOM结构会引发错误。WinJS提供了几个方法来处理此类问题,具体细节可参考此文档:http://msdn.microsoft.com/zh-CN/library/windows/apps/hh465380.aspx

3. 事件处理

如果只处理单点事件(包括触摸屏和鼠标),你的代码可以不做任何修改,与webkit事件完全相同。但是多点事件的模型就差别比较大。IE中没有类似于event.touches的属性列出所有事件,每个事件都是单独触发的,一个触点对应一个事件,各自对应一个event对象。所以需响应每个事件,然后通过pointerId来区分(类似于webkit上的identifier)。这里是一个示例:http://ie.microsoft.com/testdrive/ieblog/2011/oct/PointerDraw.js.source.html

4. 异步编程

关于js异步编程的讨论很多,也有一些第三方的解决方案,但是浏览器官方的支持一直未见动静,而微软默默的就把这件事做好了,值得表扬!

http://msdn.microsoft.com/zh-CN/library/windows/apps/hh700330.aspx


最后吐槽一下,IE10的控制台还是一如既往的不好用,真心希望能借鉴一下webkit的控制台。


2012年创业做了个HTML5游戏《港湾物语II》,一直没日没夜的忙,这几天也中招感冒了。看来不休息不行啊,不过正好趁这个机会把这一年的经验整理一下。《港湾物语II》做了Win8版本,表现不错,全球排名都在TOP20,辛苦还是值得的!

支持原创,转发请注明出处。



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值