论坛首页 Web前端技术论坛

怎样用JavaScript实现非Ajax方法的异步调用回调和线程?

浏览 9224 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-26  
    问题:在一个项目中用Excel组件OWC.Spreadsheet在客户端导出HTML格式的表格为Excel文件,对于数据量较大的表格导出会造成IE窗口停止响应,用户体验很差。
想到三个解决方案:
    1、用applet结合jxl实现。暂不考虑。
    2、利用类似Ajax请求的机制,异步调用一个导出方法,该方法在导出完毕后回调一个callback方法。
    3、利用类似Java中的线程机制,直接开一个导出线程即可。
    google了一下,对于2,虽然可以用setTimeout()实现异步调用,但仍然会造成窗口无响应;对于3,得出结论,JavaScript对线程没有原生的支持。
    请教2、3方案用JavaScript实现有解么?或者说对于这个导出应用根本无法实现?……
   发表时间:2006-10-26  
我看大数据量的话,在后台用POI之类的生成Excel文件,再传到浏览器下载好了。
0 请登录后投票
   发表时间:2006-10-26  
不想麻烦客户端,只能麻烦服务器端了。

把html表格回传到服务器,在服务器端生成excel。
或者不回传html,只把用户的查询条件回传到服务器,在服务器端生成excel。
0 请登录后投票
   发表时间:2006-10-26  
不瞒楼上二位,后台是.Net,俺不太熟悉的说,.Net利用DCOM方式生成Excel也需要解决不少问题,比如表头格式、单元格格式、Excel进程的停止释放.....,项目里面的表头千差万别,写一个通用的Excel导出类要费不少功夫。
而前台导出虽然慢点,但简单可靠,且能比较好的还原HTML格式的表格……
抛开这个导出需求不说,对于客户端稍长时间的操作这个题目还是有点价值的吧,呵呵……
0 请登录后投票
   发表时间:2006-10-26  
那你就别搞那么多数据啊,每次少一点,总比死机强把。
0 请登录后投票
   发表时间:2006-10-26  
Lucas Lee 写道
那你就别搞那么多数据啊,每次少一点,总比死机强把。

嗯,可是用OWC.Spreadsheet怎么能追加数据呢?
0 请登录后投票
论坛首页 Web前端技术版

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