论坛首页 编程语言技术论坛

flex开发执行脚本时间超过默认时间15秒就会报错

浏览 6584 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2013-04-09  
    我们的产品中需要有个下载文件的功能,文件是加密传输的,需要客户端解密,并且文件传输完毕后还要通知服务器,由于这个特殊需求,我们不能用浏览器默认的下载功能因为无法解密以及发送反馈信息。

    考虑过开发浏览器插件,起初开发了一版,使用ActiveX,但这只适合IE内核的浏览器,要对所有浏览器都开发个插件的话觉着投入太多,所以最后考虑了使用flash。

    对于flash,我们都知道他有很多限制,对于弹出浏览器窗口保存文件他需要用户去点一次按钮(那个方法必须在事件函数中调用)。这个机制就对我们的交互体验上产生了影响(用户填完信息需要点一次下载,flash把数据从服务器上面下载下来,用户还需要再点击一次保存,然后弹出浏览器窗口,用户选择好路径后再点保存才能完成下载,至少要点3次)。产品经理想要用户点击一次下载就能弹出浏览器保存窗口保存文件,好吧,这个貌似可以,我使用flex调用js,使用js下载(同步的),这样能保证在一个事件函数中完成下载及弹出浏览器保存窗口的功能,貌似很完美的解决,却碰上了让我吐血的事,flash中还隐藏这一个 1502 错误(执行脚本时间超过默认时间15秒就会报错,导致失败,这个时间可以设置最大为60秒,通过scriptTimeLimit设置,但是还是会报这个15秒错误,应该是bug,而且60秒够用吗,这是什么狗屁设计!!!),还有就是Aodbe公司设计这个限制时有没有考虑到我们只想用flash做一些一些耗时的运算?全他妈的异步还有这个15秒的限制。
   
    还因为我是flex开发新手,经验不足,要不绝不会用flex开发,宁愿去开发插件。最后绕了这么久还是要回到最原始的插件开发上来。。。
   发表时间:2013-04-09  
作为关注AS3的外行,想知道为啥要同步下载?为啥要“保证在一个事件函数中完成下载及弹出浏览器保存窗口的功能”?异步下载完成后回调通知更新弹出窗口状态就好了吧?

AS3的运行环境就是单线程的事件驱动的,像所有的UI系统一样,事件处理有超时也很合理。要做复杂的后台计算没有线程支持确实很麻烦,需要对任务分成一段段来执行,很费劲也不直观。

但你要处理的情况是不需要这么麻烦的,因为你想做的事情就是多等一会儿嘛,完全可以异步来搞。
0 请登录后投票
   发表时间:2013-04-09   最后修改:2013-04-09
fantasy86 写道
作为关注AS3的外行,想知道为啥要同步下载?为啥要“保证在一个事件函数中完成下载及弹出浏览器保存窗口的功能”?异步下载完成后回调通知更新弹出窗口状态就好了吧?

AS3的运行环境就是单线程的事件驱动的,像所有的UI系统一样,事件处理有超时也很合理。要做复杂的后台计算没有线程支持确实很麻烦,需要对任务分成一段段来执行,很费劲也不直观。

但你要处理的情况是不需要这么麻烦的,因为你想做的事情就是多等一会儿嘛,完全可以异步来搞。

关键是使用异步方式用户至少要点击2次,一次下载、一次保存,这个交互觉着不好,我才不想搞同步这么麻烦
0 请登录后投票
   发表时间:2013-04-15   最后修改:2013-04-15
既然要求客户端解密,那用Flash能解决问题吗?我们有类似项目,解决方案是开发一个专有客户端,负责文件的下载和解密以及加密、上传等功能。
0 请登录后投票
   发表时间:2013-04-16  
楼主看看这个文章: http://blog.csdn.net/lanfeng330/article/details/5625458
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics