CN101826085B - 一种基于ajax的网页在线导入/导出大文件的方法 - Google Patents

一种基于ajax的网页在线导入/导出大文件的方法 Download PDF

Info

Publication number
CN101826085B
CN101826085B CN 200910113121 CN200910113121A CN101826085B CN 101826085 B CN101826085 B CN 101826085B CN 200910113121 CN200910113121 CN 200910113121 CN 200910113121 A CN200910113121 A CN 200910113121A CN 101826085 B CN101826085 B CN 101826085B
Authority
CN
China
Prior art keywords
data
server end
page
file
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 200910113121
Other languages
English (en)
Other versions
CN101826085A (zh
Inventor
张雪峰
章正道
郭建辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN 200910113121 priority Critical patent/CN101826085B/zh
Publication of CN101826085A publication Critical patent/CN101826085A/zh
Application granted granted Critical
Publication of CN101826085B publication Critical patent/CN101826085B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于AJAX的网页在线导入/导出大文件的方法,是采用AJAX技术和DHTML,使得页面可以局部刷新,同时采用了循环多次发送短请求的方式,以能够有效减轻服务器在处理访问大文件以及插入数据库的负担和查询数据库导出大量的数据时的负担,解决了现有技术中大文件通过网页倒入数据库和大量数据通过网页从数据库导出时的超时问题,并避免了现有技术中后台写个导入的应用程序或服务,必须要有能在服务器上安装应用程序的权限的局限性,达到了能够很好地改善网页在线导入大文件的不足和改善网页在线导出大文件的不足的目的。

Description

一种基于AJAX的网页在线导入/导出大文件的方法
技术领域
本发明涉及AJAX网页技术,特别是涉及一种基于AJAX的网页在线导入/导出大文件的方法。
背景技术
随着互联网的不断发展,传统的动态网页开发技术已经为许多网页制作人员所熟悉,近年来,互联网应用程序(Rich Internet Application,简称RIA)开发模式的兴起使得互联网用户对网络交互感受提出了更高的要求,传统的技术已经无法满足RIA开发的需要,而AJAX(Asynchronous JavaScript and XML,简称AJAX)开始成为主流的RIA开发模式。AJAX是一个结合了DHTML技术、XML(可扩展标记语言,eXtensible Markup Language)以及JavaScript的编程技术,是将几项技术按一定的方式组合在一起在共同的协作中发挥各自的作用。AJAX是使用客户端脚本与网页服务器交换数据的网页应用开发技术。这样,网页不用打断交互流程进行重新加载,就可以动态地更新。AJAX网页的一个最大的特点是无需刷新页面便可向服务器传输或读写数据(又称无刷新更新页面)。
现在的动态网页开发在针对某些固定格式的数据文件导入数据库时,一般采用两种方法:一是通过网页在服务器端直接打开数据文件,逐行按格式生成Sql语句,再插入到数据库相应表中;二是单独编写一个服务器端的维护进程,专门用来执行数据文件的导入。第一种方法涉及到数据文件的打开访问和数据库表的插入操作,若是数据文件和数据库表比较庞大时,经常会造成网页超时,并且在数据导入过程中用户无法得知文件导入数据库的进度;第二种方法需要编写在服务器端运行的应用程序,具有一定的局限性。
现在的动态网页开发在针对数据库导出某些固定格式的文件时,一般采用通过网页在服务器端创建一个线程,于该线程中打开数据库链接读取数据库记录集并创建数据文件,然后按照约定的数据格式循环写文件,直至记录集完结关闭文件和数据库链接。但是当需求的数据量超过十万、百万以上时,经常会造成服务器不堪负荷网页超时导致数据导出的失败,并且在数据导出过程中用户无法得知导出的进度,具有一定的局限性。
发明内容
本发明的目的之一在于克服现有技术之不足,提供一种基于AJAX的网页在线导入大文件的方法,是采用AJAX技术和DHTML使得页面可以局部刷新,并通过循环多次发送短请求,以减轻服务器在处理访问大文件以及插入数据库的负担,能够很好地改善网页在线导入大文件的不足。
本发明的目的之二在于克服现有技术之不足,提供一种基于AJAX的网页在线导出大文件的方法,是采用AJAX技术和DHTML使得页面可以局部刷新,并通过循环多次发送短请求,以减轻服务器在查询数据库导出大量的数据时的负担,能够很好地改善网页在线导出大文件的不足。
本发明解决其技术问题所采用的技术方案是:一种基于AJAX的网页在线导入大文件的方法,包括如下步骤:
a.在服务器端与客户端之间约定服务器端的全局Session变量:设定每次的最大执行记录数为PAGESIZE,设定累计共执行的记录数为TOTALSIZE;
b.由客户端向服务器端上传文件;
c.服务器端接收文件完毕后,向客户端返回上传完结标识以及数据导入的页面框架;
d.客户端获取上传文件标识以及数据导入的页面框架后,向服务器端异步发送导入的请求;
e.服务器端获取请求后,打开由客户端上传的数据文件,跳过TOTALSIZE的行数,然后逐行按格式生成Sql语句插入至数据库中,并设置本次执行的记录数为iExeRecord;
f.服务器端对本次执行的记录数进行判断,若是本次执行的记录数iExeRecord等于PAGESIZE则继续下一步骤,若是本次执行的记录数iExeRecord小于PAGESIZE转至步骤i;
g.服务器端停止插入并关闭数据文件以及数据库连接,累计共执行的记录数TOTALSIZE,并将累计的记录数TOTALSIZE和标识Continue返回给客户端;
h.客户端接收标识Continue时,显示出导入进度的TOTALSIZE,并循环调用AJAX对象,发送导入的请求,而后返回步骤e;
i.服务器端停止插入并关闭数据文件以及数据库连接,累计共执行的记录数TOTALSIZE,并将累计的记录数TOTALSIZE和标识Over返回给客户端;
j.客户端接收到标识Over时,显示导入的总记录数TOTALSIZE,并完成导入。
所述的步骤e中,在生成Sql语句的时候,采用循环生成,中间用分号隔开,最后再一次性执行该Sql语句。
所述的步骤e中,在实现跳过TOTALSIZE的行数时,是采用记录文件访问位置指针的方式来实现。
所述的步骤d中,页面将会创建一个XmlHttpRequest对象,向服务器端发送参数,以及由该对象产生一个接收服务器端传递过来的数据的XmlDoc对象。
当页面通过XmlHttpRequest对象向服务器端发送请求时,服务器端会根据参数来执行数据导入操作;并将数据转换为Xml格式的数据再传递回页面,页面将会自动获取到由服务器端传回的Xml数据格式的数据,然后通过Dom来解析Xml数据。
在客户端的数据导入的页面框架中采用HTML标签和JavaScript来动态显示数据导入的进度。
一种基于AJAX的网页在线导出大文件的方法,包括如下步骤:
A.在服务器端与客户端之间约定服务器端的全局Session变量:设定导出的数据记录总数为TotalSize,设定每页的最大执行记录数为PageSize,总页数为TotalPage,当前执行的页码为CurPage,以及导出文件名为FileName;
B.由客户端向服务器端发送导出数据的请求;
C.服务器端接收请求后,根据条件查询记录总数TotalSize,计算总页数TotalPage,置当前执行的页码CurPage=1,并创建数据文件FileName;
D.服务器端对当前执行的页码CurPage进行判断,当CurPage<=TotalPage时继续下一步骤,当CurPage>TotalPage时转至步骤H;
E.服务器端打开数据文件FileName,利用数据库分页算法查询第CurPage页的记录集,该记录集的最大执行记录数为PageSize条,并按照预先约定的格式将记录集的记录循环写入数据文件FileName中;
F.服务器端在该记录集完结后,关闭数据文件和数据库链接,对当前执行的页码CurPage进行增1处理,并将参数TotalPage、CurPage和标识Continue返回给客户端;
G.客户端接收到标识Continue时,显示导出进度CurPage/TotalPage,并循环调用Ajax对象,发送导出数据请求;而后返回步骤D;
H.服务器端生成导出的文件链接和标识Over返回给客户端;
I.客户端接收到标识Over时,显示导出的文件链接供用户下载,并完成导出。
所述的步骤C中,在查询符合条件的查询记录总数TotalSize时,采用调用数据库提供的计算记录数的函数来得出结果。
所述的步骤B和步骤G中,当客户端向服务器端发送导出数据的请求时,服务器端会向客户端返回数据导出的页面框架;该页面将会创建一个XmlHttpRequest对象,向服务器端发送参数,以及由该对象产生一个接收服务器端传递过来的数据的XmlDoc对象。
当页面通过XmlHttpRequest对象向服务器端发送请求时,服务器端会根据参数来执行数据导出操作;并将数据转换为Xml格式的数据再传递回页面,页面将会自动获取到传回的Xml数据格式的数据,然后通过Dom来解析Xml数据。
在客户端的数据导出的页面框架中采用HTML标签和JavaScript来动态显示数据导出的进度。
本发明的有益效果是,由于采用了AJAX技术和DHTML,使得页面可以局部刷新,由于采用了循环多次发送短请求的方式,能够有效减轻服务器在处理访问大文件以及插入数据库的负担和查询数据库导出大量的数据时的负担,解决了现有技术中大文件通过网页倒入数据库和大量数据通过网页从数据库导出时的超时问题,并避免了现有技术中后台写个导入的应用程序或服务,必须要有能在服务器上安装应用程序的权限的局限性,达到了能够很好地改善网页在线导入大文件的不足和改善网页在线导出大文件的不足的目的。
以下结合附图及实施例对本发明作进一步详细说明;但本发明的一种基于AJAX的网页在线导入/导出大文件的方法不局限于实施例。
附图说明
图1是实施例本发明的基于AJAX的网页在线导入大文件的流程图;
图2是实施例本发明的基于AJAX的网页在线导出大文件的流程图。
具体实施方式
实施例,本发明实施例的网页编程语言为Asp,数据库采用SqlServer2000,操作系统为MicroSoft Windows 2003Server。
ASP是指动态服务器主页(Active server pags,简称ASP),内含于InternetInformation Server(IIS)当中,提供一个服务器端(server-side)的scripting环境,让你产生和执行动态,交互式,高效率的站点服务器的应用程序。服务器会自动将Active Server Pages的程序代码,解释为标准HTML格式的主页内容,在送到用户端的浏览器上显示出来。用户端只要使用常规可执行HTML码的浏览器,即可浏览Active Server Pages所设计的主页内容。
DHTML是指动态HTML(Dynamic HTML,简称DHTML),其实并不是一门新的语言,它只是HTML、CSS和客户端脚本的一种集成。DHTML建立在原有的技术的基础上,可分为三个方面:
第一方面HTML,也就是页面中的各种页面元素对象,它们是被动态操纵的内容;
第二方面CSS,CSS属性也就是动态操纵的内容,从而获得动态的格式效果;
第三方面客户端脚本(例如JavaScript),它实际操纵Web页面上的HTML和CSS。
JavaScript是一种嵌入或调入到标准的网页Html代码中的,可在浏览器客户端运行的,基于对象和事件驱动并具有安全性能的一种用于开发动态网页的编程语言。有了JavaScript,可使得网页变得生动。使用它的目的是与HTML超文本标识语言、Java或Vb脚本语言一起实现在一个网页中链接多个对象,与网络客户交互使用,从而可以开发客户端的应用程序。
XmlHttpRequest为可在JavaScript中创建的客户端ActiveX对象,该对象在Intemet Explorer5中首次引入,是一种支持异步请求的技术。使用该对象可向服务器发起请求,并处理请求来获取数据,而不阻塞用户。
Ajax是Asynchronous JavaScript and XML(异步JavaScript和XML)的缩写,是指一种创建交互式网页应用的网页开发技术,使用了客户端脚本与Web服务器交换数据的Web应用开发方法,其中主要使用了XmlHttpRequest对象。使用Ajax可以使得Web页面不用打断交互流程进行重新加载,就可以动态地更新,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
Ajax提供与服务器异步通信的能力,从而使用户从请求/响应的循环中解脱出来。借助于Ajax,可以在用户单击按钮或或链接时,使用JavaScript和DHTML立即更新用户界面,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用JavaScript和CSS来相应地更新用户界面,而不是刷新整个页面。
XML是eXtensible Markup Language(可扩展标记语言)的缩写。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,简单来说就是一种描述数据结构的格式。
参见图1所示,本发明的一种基于AJAX的网页在线导入大文件的方法,包括如下步骤:
步骤a.在服务器端与客户端之间约定服务器端的全局Session变量:设定每次的最大执行记录数为PAGESIZE,设定累计共执行的记录数为TOTALSIZE;
步骤b.由客户端向服务器端上传文件;
步骤c.服务器端接收文件完毕后,向客户端返回上传完结标识以及数据导入的页面框架;
步骤d.客户端获取上传文件标识以及数据导入的页面框架后,向服务器端异步发送导入的请求;
步骤e.服务器端获取请求后,打开由客户端上传的数据文件,跳过TOTALSIZE的行数,然后逐行按格式生成Sql语句插入至数据库中,并设置本次执行的记录数为iExeRecord;
步骤f.服务器端对本次执行的记录数进行判断,若是本次执行的记录数iExeRecord等于PAGESIZE则继续下一步骤,若是本次执行的记录数iExeRecord小于PAGESIZE转至步骤i;
步骤g.服务器端停止插入并关闭数据文件以及数据库连接,累计共执行的记录数TOTALSIZE,并将累计的记录数TOTALSIZE和标识Continue返回给客户端;
步骤h.客户端接收标识Continue时,显示出导入进度的TOTALSIZE,并循环调用AJAX对象,发送导入的请求,而后返回步骤e;
步骤i.服务器端停止插入并关闭数据文件以及数据库连接,累计共执行的记录数TOTALSIZE,并将累计的记录数TOTALSIZE和标识Over返回给客户端;
步骤j.客户端接收到标识Over时,显示导入的总记录数TOTALSIZE,并完成导入。
其中:
所述的步骤e中,在生成Sql语句的时候,采用循环生成,中间用分号隔开,最后再一次性执行该Sql语句;
所述的步骤e中,在实现跳过TOTALSIZE的行数时,是采用记录文件访问位置指针的方式来实现;
所述的步骤d中,页面将会创建一个XmlHttpRequest对象,向服务器端发送参数,以及由该对象产生一个接收服务器端传递过来的数据的XmlDoc对象;
当页面通过XmlHttpRequest对象向服务器端发送请求时,服务器端会根据参数来执行数据导入操作;并将数据转换为Xml格式的数据再传递回页面,页面将会自动获取到由服务器端传回的Xml数据格式的数据,然后通过Dom来解析Xml数据;
在客户端的数据导入的页面框架中采用HTML标签和JavaScript来动态显示数据导入的进度。
本发明的一种基于AJAX的网页在线导入大文件的方法,由于系统是面向对象的MVC模式(Model-View-Controller,模型-视图-控制器)在Web开发中的应用,Model表示应用的业务逻辑层,View是应用的表示层面,Controller是提供应用的处理过程控制。通过这种MVC设计模式把应用逻辑,处理过程和显示逻辑划分成不同的组件、模块实现,组件间可以进行交互和重用。
本发明中,表示层专注于客户端的显示导入进度,处理过程控制为页面提供转向和数据,控制层作为表示层和模型层之间的联系;业务逻辑层是业务逻辑和数据的存储和表示。
步骤d中客户端在获取上传文件标识后,页面将自动通过Ajax技术来实现发送数据导入的请求和参数,页面会创建一个XmlHttpRequest对象,向服务器发送参数,以及由该对象产生一个可以接收服务器传递过来数据的XmlDoc对象。
当页面通过XmlHttpRequest对象向服务器发送参数时,服务器会根据参数来执行数据导入操作。服务器端打开数据文件是采用ASP的FSO(File SystemObject)对象模型的FileSystemObject对象来对文件系统进行访问处理,在此我们使用FileSystemObject对象的OpenTextFile方法来打开指定的数据文件。如果是第一次打开数据文件,那么TOTALSIZE等于0,此时调用ReadLine方法来循环读取数据文件的行;否则应先使用了While循环+SkipLine方法的方式来跳过已经处理过的行数,之后调用ReadLine方法来循环读取数据,直至达到PAGESIZE限制。在读取行数据的同时,可以增加对该行数据的验证。
参见图2所示,本发明的一种基于AJAX的网页在线导出大文件的方法,包括如下步骤:
步骤A.在服务器端与客户端之间约定服务器端的全局Session变量:设定导出的数据记录总数为TotalSize,设定每页的最大执行记录数为PageSize,总页数为TotalPage,当前执行的页码为CurPage,以及导出文件名为FileName;
步骤B.由客户端向服务器端发送导出数据的请求;
步骤C.服务器端接收请求后,根据条件查询记录总数TotalSize,计算总页数TotalPage,置当前执行的页码CurPage=1,并创建数据文件FileName;
步骤D.服务器端对当前执行的页码CurPage进行判断,当CurPage<=TotalPage时继续下一步骤,当CurPage>TotalPage时转至步骤H;
步骤E.服务器端打开数据文件FileName,利用数据库分页算法查询第CurPage页的记录集,该记录集的最大执行记录数为PageSize条,并按照预先约定的格式将记录集的记录循环写入数据文件FileName中;
步骤F.服务器端在该记录集完结后,关闭数据文件和数据库链接,对当前执行的页码CurPage进行增1处理,并将参数TotalPage、CurPage和标识Continue返回给客户端;
步骤G.客户端接收到标识Continue时,显示导出进度CurPage/TotalPage,并循环调用Ajax对象,发送导出数据请求;而后返回步骤D;
步骤H.服务器端生成导出的文件链接和标识Over返回给客户端;
步骤I.客户端接收到标识Over时,显示导出的文件链接供用户下载,并完成导出。
其中:
所述的步骤C中,在查询符合条件的查询记录总数TotalSize时,采用调用数据库提供的计算记录数的函数来得出结果;
所述的步骤B和步骤G中,当客户端向服务器端发送导出数据的请求时,服务器端会向客户端返回数据导出的页面框架;该页面将会创建一个XmlHttpRequest对象,向服务器端发送参数,以及由该对象产生一个接收服务器端传递过来的数据的XmlDoc对象;
当页面通过XmlHttpRequest对象向服务器端发送请求时,服务器端会根据参数来执行数据导出操作;并将数据转换为Xml格式的数据再传递回页面,页面将会自动获取到传回的Xml数据格式的数据,然后通过Dom来解析Xml数据;
在客户端的数据导出的页面框架中采用HTML标签和JavaScript来动态显示数据导出的进度。
本发明的一种基于AJAX的网页在线导出大文件的方法,由于系统是面向对象的MVC模式(Model-View-Controller,模型-视图-控制器)在Web开发中的应用,Model表示应用的业务逻辑层,View是应用的表示层面,Controller是提供应用的处理过程控制。通过这种MVC设计模式把应用逻辑,处理过程和显示逻辑划分成不同的组件、模块实现,组件间可以进行交互和重用。
本发明中,表示层专注于客户端的显示导出进度,处理过程控制为页面提供转向和数据,控制层作为表示层和模型层之间的联系;业务逻辑层是业务逻辑和数据的存储和表示。
步骤B和步骤G中客户端在发送导出数据请求时,页面将自动通过Ajax技术来实现发送数据导出的请求和参数,页面会创建一个XmlHttpRequest对象,向服务器发送参数,以及由该对象产生一个可以接收服务器传递过来数据的XmlDoc对象。
当页面通过XmlHttpRequest对象向服务器发送参数时,服务器会根据参数来查询数据库,首先获取根据条件的数据记录总数目TOTALSIZE,计算总页数TotalPage,然后每次只处理1页,即每次只处理记录数PageSize。服务器端创建数据文件是采用ASP的FSO(File System Object)对象模型的FileSystemObject对象来对文件系统进行访问处理,在此我们使用FileSystemObject对象的OpenTextFile方法来打开数据文件(当该文件不存在时先创建)。查询数据库时每次只查询PageSize的记录,循环调用Write或是WriteLine方法来写入数据文件直至达到PageSize限制。关闭数据库连接和FileSystemObject对象,释放系统资源。
当数据完全处理完毕时,客户端应显示该数据文件的链接,以供用户访问下载。
另外,若是生成的文件格式为Excel文件时,应考虑Xls文件每个工作表Sheet存在65000条记录的限制,可以考虑分多个工作表或是多个文件存放。
上述实施例仅用来进一步说明本发明的一种基于AJAX的网页在线导入/导出大文件的方法,但本发明并不局限于实施例,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均落入本发明技术方案的保护范围内。

Claims (9)

1.一种基于AJAX的网页在线导入大文件的方法,其特征在于:包括如下步骤:
a.在服务器端与客户端之间约定服务器端的全局Session变量:设定每次的最大执行记录数为PAGESIZE,设定累计共执行的记录数为TOTALSIZE;
b.由客户端向服务器端上传数据文件;
c.服务器端接收数据文件完毕后,向客户端返回上传完结标识以及数据导入的页面框架;
d.客户端获取上传完结标识以及数据导入的页面框架后,向服务器端异步发送导入的请求;
e.服务器端获取请求后,打开由客户端上传的数据文件,跳过TOTALSIZE的行数,然后逐行按格式生成Sql语句插入至数据库中,并设置本次执行的记录数为iExeRecord;
f.服务器端对本次执行的记录数进行判断,若是本次执行的记录数iExeRecord等于PAGESIZE则继续下一步骤,若是本次执行的记录数iExeRecord小于PAGESIZE转至步骤i;
g.服务器端停止插入并关闭数据文件以及数据库连接,累计共执行的记录数TOTALSIZE,并将累计的记录数TOTALSIZE和标识Continue返回给客户端;
h.客户端接收标识Continue时,显示出导入进度的TOTALSIZE,并循环调用AJAX对象,发送导入的请求,而后返回步骤e;
i.服务器端停止插入并关闭数据文件以及数据库连接,累计共执行的记录数TOTALSIZE,并将累计的记录数TOTALSIZE和标识Over返回给客户端;
j.客户端接收到标识Over时,显示导入的总记录数TOTALSIZE,并完成导入;
其中,所述的步骤d中,页面将会创建一个XmlHttpRequest对象,向服务器端发送参数,以及由该对象产生一个接收服务器端传递过来的数据的XmlDoc对象。
2.根据权利要求1所述的基于AJAX的网页在线导入大文件的方法,其特征在于:所述的步骤e中,在生成Sql语句的时候,采用循环生成,中间用分号隔开,最后再一次性执行该Sql语句。
3.根据权利要求1所述的基于AJAX的网页在线导入大文件的方法,其特征在于:所述的步骤e中,在实现跳过TOTALSIZE的行数时,是采用记录文件访问位置指针的方式来实现。
4.根据权利要求1所述的基于AJAX的网页在线导入大文件的方法,其特征在于:当页面通过XmlHttpRequest对象向服务器端发送请求时,服务器端会根据参数来执行数据导入操作;并将数据转换为Xml格式的数据再传递回页面,页面将会自动获取到由服务器端传回的Xml数据格式的数据,然后通过Dom来解析Xml数据。
5.根据权利要求1所述的基于AJAX的网页在线导入大文件的方法,其特征在于:在客户端的数据导入的页面框架中采用HTML标签和JavaScript来动态显示数据导入的进度。
6.一种基于AJAX的网页在线导出大文件的方法,其特征在于:包括如下步骤:
A.在服务器端与客户端之间约定服务器端的全局Session变量:设定导出的数据记录总数为TotalSize,设定每页的最大执行记录数为PageSize,总页数为TotalPage,当前执行的页码为CurPage,以及导出文件名为FileName;
B.由客户端向服务器端发送导出数据的请求;
C.服务器端接收请求后,根据条件查询记录总数TotalSize,计算总页数TotalPage,置当前执行的页码CurPage=1,并创建数据文件FileName;
D.服务器端对当前执行的页码CurPage进行判断,当CurPage<=TotalPage时继续下一步骤,当CurPage>TotalPage时转至步骤H;
E.服务器端打开数据文件FileName,利用数据库分页算法查询第CurPage页的记录集,该记录集的最大执行记录数为PageSize条,并按照预先约定的格式将记录集的记录循环写入数据文件FileName中;
F.服务器端在该记录集完结后,关闭数据文件和数据库链接,对当前执行的页码CurPage进行增1处理,并将参数TotalPage、CurPage和标识Continue返回给客户端;
G.客户端接收到标识Continue时,显示导出进度CurPage/TotalPage,并循环调用Ajax对象,发送导出数据请求;而后返回步骤D;
H.服务器端生成导出的文件链接和标识Over返回给客户端;
I.客户端接收到标识Over时,显示导出的文件链接供用户下载,并完成导出;
其中,所述的步骤B和步骤G中,当客户端向服务器端发送导出数据的请求时,服务器端会向客户端返回数据导出的页面框架;该页面将会创建一个XmlHttpRequest对象,向服务器端发送参数,以及由该对象产生一个接收服务器端传递过来的数据的XmlDoc对象。
7.根据权利要求6所述的基于AJAX的网页在线导出大文件的方法,其特征在于:所述的步骤C中,在查询符合条件的查询记录总数TotalSize时,采用调用数据库提供的计算记录数的函数来得出结果。
8.根据权利要求6所述的基于AJAX的网页在线导出大文件的方法,其特征在于:当页面通过XmlHttpRequest对象向服务器端发送请求时,服务器端会根据参数来执行数据导出操作;并将数据转换为Xml格式的数据再传递回页面,页面将会自动获取到传回的Xml数据格式的数据,然后通过Dom来解析Xml数据。
9.根据权利要求6所述的基于AJAX的网页在线导出大文件的方法,其特征在于:在客户端的数据导出的页面框架中采用HTML标签和JavaScript来动态显示数据导出的进度。
CN 200910113121 2009-12-30 2009-12-30 一种基于ajax的网页在线导入/导出大文件的方法 Active CN101826085B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910113121 CN101826085B (zh) 2009-12-30 2009-12-30 一种基于ajax的网页在线导入/导出大文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910113121 CN101826085B (zh) 2009-12-30 2009-12-30 一种基于ajax的网页在线导入/导出大文件的方法

Publications (2)

Publication Number Publication Date
CN101826085A CN101826085A (zh) 2010-09-08
CN101826085B true CN101826085B (zh) 2012-01-18

Family

ID=42690005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910113121 Active CN101826085B (zh) 2009-12-30 2009-12-30 一种基于ajax的网页在线导入/导出大文件的方法

Country Status (1)

Country Link
CN (1) CN101826085B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989371A (zh) * 2017-06-01 2018-12-11 腾讯科技(深圳)有限公司 数据上报方法和装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215126B (zh) * 2011-06-08 2017-11-03 中兴通讯股份有限公司 性能报表的生成方法及装置
CN102929877B (zh) * 2011-08-08 2016-02-17 阿里巴巴集团控股有限公司 将网页上的表格数据生成表格文件的方法及装置
CN102426579A (zh) * 2011-08-25 2012-04-25 中兴通讯股份有限公司 一种基于网络方式导入导出文件的方法
CN102299966B (zh) * 2011-09-06 2013-10-09 深圳中兴力维技术有限公司 一种在web客户端加载大数据量的方法及装置
CN104572640A (zh) * 2013-10-09 2015-04-29 腾讯科技(深圳)有限公司 网页书签导入方法、装置及浏览器
CN103607441A (zh) * 2013-11-12 2014-02-26 浪潮集团有限公司 一种基于web的服务器远程管理系统
CN104657123B (zh) * 2013-11-21 2018-09-11 航天信息股份有限公司 一种动态导出文件的方法
CN103631973A (zh) * 2013-12-20 2014-03-12 大连大学 一种基于Ajax技术的无刷新分页方法
CN108073661A (zh) * 2016-11-18 2018-05-25 北京京东尚科信息技术有限公司 数据检索方法及装置、报表生成系统及方法
CN106776953A (zh) * 2016-12-04 2017-05-31 国云科技股份有限公司 一种在线文件云存储系统的实现方法
CN107147706A (zh) * 2017-04-26 2017-09-08 努比亚技术有限公司 数据导出方法及装置
CN108874390B (zh) * 2017-05-10 2023-05-16 腾讯科技(北京)有限公司 一种数据处理方法及装置、设备、存储介质
CN107632880B (zh) * 2017-08-31 2021-05-04 深圳市丰巢科技有限公司 导出excel数据的方法、存储介质及电子设备
CN107784085B (zh) * 2017-09-30 2021-04-13 平安科技(深圳)有限公司 一种数据列表的导出方法及其终端
CN108153874B (zh) * 2017-12-26 2022-07-29 福建星瑞格软件有限公司 一种大数据高耗时查询结果集的快速分页方法
CN108334318B (zh) * 2018-01-30 2021-01-19 福建星瑞格软件有限公司 自定义深度广度实现sql语句自动生成工具定制化的方法
CN109344197B (zh) * 2018-09-13 2021-01-26 广州帷策智能科技有限公司 基于大数据的分页下载方法和装置
CN110955674B (zh) * 2019-10-21 2022-09-06 江苏苏宁物流有限公司 基于java服务的异步导出方法及组件
CN111314280B (zh) * 2019-11-28 2022-05-27 上海孝庸资产管理有限公司 一种基于多用户大数据量的慢系统数据实时读取更新方法
CN112506866A (zh) * 2020-10-10 2021-03-16 浪潮云信息技术股份公司 一种适用于大数据量文件的导入方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108989371A (zh) * 2017-06-01 2018-12-11 腾讯科技(深圳)有限公司 数据上报方法和装置
CN108989371B (zh) * 2017-06-01 2021-05-28 腾讯科技(深圳)有限公司 数据上报方法和装置

Also Published As

Publication number Publication date
CN101826085A (zh) 2010-09-08

Similar Documents

Publication Publication Date Title
CN101826085B (zh) 一种基于ajax的网页在线导入/导出大文件的方法
US9633135B2 (en) Method and system for extending the capabilities of embedded devices through network clients
CN101122921B (zh) 基于ajax与html标记形成树形显示结构的方法
US8073857B2 (en) Semantics-based data transformation over a wire in mashups
US9852120B2 (en) Collaborative access spreadsheet with a real-time visual indication identifying last edit user
WO2009032491A2 (en) Module hosting and content generation platform
CN103914438A (zh) 基于模版与标记实现的Excel显示与导出方法及系统
CN101334872B (zh) 基于Web服务的电子公文交换方法
CN102880683A (zh) 一种可行性研究报告的自动网络生成系统及其生成方法
CN106372175A (zh) 报表的处理方法、装置和服务器
CN108334477A (zh) 智能文档的实现方法、装置、计算机设备及存储介质
CN104731606A (zh) 基于识别抓取技术实现企业应用集成管理的系统及方法
Niu et al. A design of cross-terminal web system based on JSON and REST
CN109614143B (zh) Ietm浏览器中自动生成故障流程图的开发方法
Zhang 2-Tier Cloud Architecture with maximized RIA and SimpleDB via minimized REST
CN108170718A (zh) 一种指标数据的处理方法和装置
US20070240048A1 (en) A standard communication interface for server-side filter objects
Aitken et al. The planets testbed: Science for digital preservation
Penberthy Exam Ref 70-486 Developing ASP. NET MVC 4 Web Applications (MCSD): Developing ASP. NET MVC 4 Web Applications
US11726780B1 (en) System and methods for application programming interface reference documentation updater
CN103546564A (zh) 基于Flex技术实现RIA的WEB应用方法及系统
Tan et al. Internet-based platform for power system simulating and planning
Xu Web-based billing system exploits mature and emerging technology
TWI610183B (zh) 植基於ajax技術於控管網頁共通部分之運作系統
TWM511643U (zh) 植基於ajax技術的數據集中控管系統

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20100908

Assignee: XIAMEN SECURITY INTELLIGENCE INFORMATION TECHNOLOGY CO.,LTD.

Assignor: XIAMEN MEIYA PICO INFORMATION Co.,Ltd.

Contract record no.: X2023350000022

Denomination of invention: A method of online import/export of large files for web pages based on AJAX

Granted publication date: 20120118

License type: Common License

Record date: 20230223

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20100908

Assignee: Xiaoma Baoli (Xiamen) Network Technology Co.,Ltd.

Assignor: XIAMEN MEIYA PICO INFORMATION Co.,Ltd.

Contract record no.: X2023350000080

Denomination of invention: An AJAX based method for online importing/exporting large files from Web pages

Granted publication date: 20120118

License type: Common License

Record date: 20230313