`
unifly
  • 浏览: 55398 次
  • 性别: Icon_minigender_1
  • 来自: yantai
社区版块
存档分类
最新评论

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

    博客分类:
  • Web
阅读更多
    问题:在一个项目中用Excel组件OWC.Spreadsheet在客户端导出HTML格式的表格为Excel文件,对于数据量较大的表格导出会造成IE窗口停止响应,用户体验很差。
想到三个解决方案:
    1、用applet结合jxl实现。暂不考虑。
    2、利用类似Ajax请求的机制,异步调用一个导出方法,该方法在导出完毕后回调一个callback方法。
    3、利用类似Java中的线程机制,直接开一个导出线程即可。
    google了一下,对于2,虽然可以用setTimeout()实现异步调用,但仍然会造成窗口无响应;对于3,得出结论,JavaScript对线程没有原生的支持。
    请教2、3方案用JavaScript实现有解么?或者说对于这个导出应用根本无法实现?……
分享到:
评论
5 楼 unifly 2006-10-26  
Lucas Lee 写道
那你就别搞那么多数据啊,每次少一点,总比死机强把。

嗯,可是用OWC.Spreadsheet怎么能追加数据呢?
4 楼 LucasLee 2006-10-26  
那你就别搞那么多数据啊,每次少一点,总比死机强把。
3 楼 unifly 2006-10-26  
不瞒楼上二位,后台是.Net,俺不太熟悉的说,.Net利用DCOM方式生成Excel也需要解决不少问题,比如表头格式、单元格格式、Excel进程的停止释放.....,项目里面的表头千差万别,写一个通用的Excel导出类要费不少功夫。
而前台导出虽然慢点,但简单可靠,且能比较好的还原HTML格式的表格……
抛开这个导出需求不说,对于客户端稍长时间的操作这个题目还是有点价值的吧,呵呵……
2 楼 alang 2006-10-26  
不想麻烦客户端,只能麻烦服务器端了。

把html表格回传到服务器,在服务器端生成excel。
或者不回传html,只把用户的查询条件回传到服务器,在服务器端生成excel。
1 楼 LucasLee 2006-10-26  
我看大数据量的话,在后台用POI之类的生成Excel文件,再传到浏览器下载好了。

相关推荐

    简单了解JavaScript异步

    JavaScript异步都是通过回调形式完成的,开发过程中一直在处理回调,可能不知不觉中自己就已经处在回调地狱中。 浏览器线程 在开始之前简单的说一下浏览器的线程,对浏览器的作业有个基础的认识。之前说过...

    asp.net知识库

    Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0...

    JavaScript之promise_动力节点Java学院整理

    异步执行可以用回调函数实现: function callback() { console.log('Done'); } console.log('before setTimeout()'); setTimeout(callback, 1000); // 1秒钟后调用callback函数 console.log('after setTimeout()'...

    JavaScript基础知识:JavaScript的知识库

    JavaScript具有调用堆栈,事件循环,回调队列和其他API。 它是一种高级的解释型编程语言,可以直接自由地执行指令,而无需事先将程序编译为机器语言指令。 解释器直接执行程序,将每个语句转换为一个或多个子例程...

    python入门到高级全栈工程师培训 第3期 附课件代码

    05 setDaemon方法和继承式调用.baiduyun.downloading 05 setDaemon方法和继承式调用 第34章 01 上节知识回顾 02 并发并行与同步异步的概念 03 GIL的概念 04 同步锁 05 递归锁 06 同步对象event 07 信号量 08 线程...

    Java学习笔记-个人整理的

    {7.2}回调模式与FileFilter}{104}{section.7.2} {7.3}\ttfamily RandomAccessFile}{106}{section.7.3} {7.4}基本类型数据序列化}{108}{section.7.4} {7.5}String的序列化}{109}{section.7.5} {7.6}InputStream...

Global site tag (gtag.js) - Google Analytics