CN103677951A - 一种JavaScript脚本的执行过程控制方法和系统 - Google Patents
一种JavaScript脚本的执行过程控制方法和系统 Download PDFInfo
- Publication number
- CN103677951A CN103677951A CN201310677078.2A CN201310677078A CN103677951A CN 103677951 A CN103677951 A CN 103677951A CN 201310677078 A CN201310677078 A CN 201310677078A CN 103677951 A CN103677951 A CN 103677951A
- Authority
- CN
- China
- Prior art keywords
- code segment
- javascript
- code
- server
- execution
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 239000012634 fragment Substances 0.000 claims abstract description 20
- 238000013515 script Methods 0.000 claims description 56
- 238000004886 process control Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种JavaScript脚本的执行过程控制方法,包括:分配代码片段的步骤,包括将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;客户端浏览器解释执行第一代码片段的步骤,包括:解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台;服务器解析平台解释执行第二代码片段的步骤,包括:为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中;串接步骤,包括:将各个第一代码片段和第二代码片段的解释执行结果串接起来。
Description
技术领域
本发明涉及网络通信领域,特别涉及一种JavaScript脚本的执行过程控制方法和系统。
背景技术
网络是当代人生活中不可或缺的一部分,随着移动终端,特别是智能移动终端的迅速发展,通过移动终端访问网页已经成为网络用户的常见选择。与个人计算机相比,移动终端资源相对有限,如计算能力弱、访问内存小,这会为应用程序在移动终端上的运行带来障碍。
动态网页是指除了包含静态URL之外,还包含有必须通过浏览器执行脚本才能得到的超链接网络地址和网页主体内容的网页。现有技术中的动态网页通常包含JavaScript脚本,JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,其解析、执行都在客户端(若通过移动终端访问网页,则客户端即为移动终端)上实现。JavaScript脚本的这一特性,使得对包含有JavaScript的动态网页的处理需要耗费移动终端大量的资源,这会给资源有限的移动终端带来沉重的负担,造成动态网页显示缓慢的问题,甚至造成动态网页无法正常显示。随着网页功能的日益繁多,动态网页中的JavaScript脚本日趋复杂,这一不良影响也日渐显现。
现有技术中,本领域技术人员针对JavaScript脚本需在客户端解析执行,从而耗费移动终端大量资源的状况,提出了在服务器端执行JavaScript的方法。例如,在申请号为201010586285.3、申请名称为《由服务器端执行JS的方法和装置》、申请人为腾讯科技(深圳)有限公司的中国专利申请中,提出了一种设置在服务器端的页面解析服务器,由该页面解析服务器抓取与移动终端发送的URL请求对应的原始页面,执行该原始页面上的JavaScript,得到结果页面;然后在结果页面上添加JavaScript节点属性,并发送至移动终端,由移动终端根据用户触发的JavaScript事件和所述JavaScript节点属性填写JavaScript请求协议包;最后接收移动终端发送的JavaScript请求协议包,对JavaScript请求协议包中需要执行JavaScript事件的节点标签执行JavaScript事件。
在专利授权号为ZL201010226788.X、名称为《用于移动通讯设备终端的浏览器脚本解析方法及其装置》、申请人为优视科技有限公司的中国专利中,提出了如下方法:服务端根据客户端请求访问网络服务器,获取网页第一脚本的脚本获取步骤;服务端对第一脚本进行分析并编译成第一中间指令码的中间指令获取步骤;服务端把第一中间指令码发送到客户端的中间指令发送步骤;客户端根据第一中间指令码解析脚本的脚本解析步骤。
现有技术中的上述两种方法都采用了自定义中间指令以及定制客户端的方式来处理JavaScript脚本,即由服务器端来分析、编译、执行需要花费大量时间与资源的JavaScript脚本,移动终端采用自行定义的前端语言触发后台交互,仅需完成显示,或执行诸如HTML的静态代码等简易工作。上述方法主要针对当时的移动终端对JavaScript不支持或支持程度很低的情况,但不适用于具有复杂JavaScript应用的网络页面。例如,在诸如电子商务系统、企业管理系统的流程系统中,存在着大量需要在父子页面中连贯动态执行复杂JavaScript应用的网络页面,对于此类系统,现有技术中的上述方法无法完整执行JavaScript应用。
目前,网络上存在着大量带有复杂JavaScript应用的Web服务,这些Web服务在创建时通常都是针对桌面计算机或移动计算机的运行环境所编写的。由于运行环境的差异,若要在移动终端上完整、正确、安全、稳定地运行这些Web服务,通常需要对Web服务的源代码进行改写,甚至重新设计开发,这会花费大量的人力成本与时间成本。若能在不改写原有Web服务的基础上,无需专用客户端即可实现原有Web服务在移动终端上完整、正确、安全、稳定地运行,必将受到用户的欢迎。
发明内容
本发明的目的在于克服现有技术中的包含复杂JavaScript脚本的页面无法在移动终端上正常访问的缺陷,从而提供一种能够实现包含复杂JavaScript脚本的页面在移动终端上正常访问,并保证JavaScript脚本完整、正确执行的方法与系统。
为了实现上述目的,本发明提供了一种JavaScript脚本的执行过程控制方法,用于将JavaScript脚本的执行过程在位于服务器端的服务器解析平台与位于客户端的浏览器上加以分配;该方法包括:
分配代码片段的步骤,该步骤包括将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;其中,分配到客户端浏览器的代码片段为第一代码片段,分配到服务器解析平台的代码片段为第二代码片段;
客户端浏览器解释执行第一代码片段的步骤,该步骤包括:解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台;
服务器解析平台解释执行第二代码片段的步骤,该步骤包括:为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在所述独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中;
串接步骤,该步骤包括:将各个第一代码片段和第二代码片段的解释执行结果串接起来。
上述技术方案中,在所述的分配代码片段的步骤之前还包括:获取分配对象信息的步骤;在所述分配代码片段的步骤中,根据所述分配对象信息将所述第一或第二代码片段分配在服务器解析平台或客户端浏览器。
上述技术方案中,根据所述分配对象信息将JavaScript脚本中规模庞大、结构复杂的代码片段放在服务器解析平台中执行,将JavaScript脚本中需要用户参与的代码片段放在客户端浏览器中执行。
上述技术方案中,在客户端浏览器解释执行第一代码片段的步骤之后,还包括为第一代码片段解释执行所得到的中间状态、中间参数、中间结果在服务器解析平台中创建独立缓存的步骤。
上述技术方案中,所述独立缓存所保存的第一或第二代码片段在解释执行过程中所产生的中间状态、中间参数、中间结果具有全局性。
上述技术方案中,所述串接步骤包括:创建一个用于生成完整JavaScript脚本的工作空间,在该工作空间中将各个第一代码片段和第二代码片段的解释执行结果串接起来。
上述技术方案中,所述客户端为移动终端。
本发明还提供了一种JavaScript脚本的执行过程控制系统,包括位于服务器端的服务器解析平台与位于客户端的浏览器;其中,所述服务器解析平台包括代码片段分配模块、解释执行模块以及串接模块;其中,
所述代码片段分配模块用于将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;其中,分配到客户端浏览器的代码片段为第一代码片段,分配到服务器解析平台的代码片段为第二代码片段;
所述解释执行模块用于为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在所述独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中;
所述客户端的浏览器用于解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台;
所述串接模块用于将各个第一代码片段和第二代码片段的解释执行结果串接起来。
上述技术方案中,所述服务器解析平台还包括获取分配对象信息模块,该模块获取分配对象信息;所得到的分配对象信息输入代码片段分配模块后,所述代码片段分配模块根据所述分配对象信息将所述第一或第二代码片段分配在服务器解析平台或客户端浏览器。
另一方面,本发明实施例还提供一种用于计算机系统的JavaScript脚本的执行过程控制程序,所述程序用于将JavaScript脚本的执行过程在位于服务器端的服务器解析平台与位于客户端的浏览器上加以分配,所述程序包括:
分配代码片段的指令,该指令用于将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;其中,分配到客户端浏览器的代码片段为第一代码片段,分配到服务器解析平台的代码片段为第二代码片段;
客户端浏览器解释执行第一代码片段的指令,该指令用于解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台;
服务器解析平台解释执行第二代码片段的指令,该指令用于:为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在所述独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中;
串接指令,该指令用于:将各个第一代码片段和第二代码片段的解释执行结果串接起来。
优选地,所述程序还包括获取分配对象信息的指令;以及所述分配代码片段的指令还用于根据所述分配对象信息将所述第一或第二代码片段分配在服务器解析平台或客户端浏览器。
进一步优选地,所述分配代码片段的指令还用于根据所述分配对象信息将JavaScript脚本中规模庞大、结构复杂的代码片段放在服务器解析平台中执行,将JavaScript脚本中需要用户参与的代码片段放在客户端浏览器中执行。
优选地,客户端浏览器解释执行第一代码片段的指令,还用于在客户端浏览器解释执行第一代码片段的步骤之后为第一代码片段解释执行所得到的中间状态、中间参数、中间结果在服务器解析平台中创建独立缓存。
优选地,所述独立缓存所保存的第一或第二代码片段在解释执行过程中所产生的中间状态、中间参数、中间结果具有全局性。
优选地,所述串接指令还用于:创建一个用于生成完整JavaScript脚本的工作空间,在该工作空间中将各个第一代码片段和第二代码片段的解释执行结果串接起来。
优选地,所述客户端为移动终端。
再一方面,本发明实施例还提供一种计算机可读介质,所述介质用于存储上述用于计算机系统的JavaScript脚本的执行过程控制程序。
本发明的优点在于:
1、本发明的方法通过对复杂JavaScript脚本的执行过程的控制,将其执行过程合理地分配在客户端与服务器端上分别执行,克服了包含复杂JavaScript脚本的页面无法在移动终端上正常访问的缺陷,且实现了处理资源的动态的有效利用。
2、本发明的方法无需对原有的JavaScript脚本的代码进行改造或重写,无需生成专用客户端,有利于降低实现难度,节省资源。
附图说明
图1是本发明中所涉及的系统示意图;
图2是本发明的JavaScript执行过程控制方法的流程图;
图3是本发明的JavaScript执行过程控制方法的时序图。
具体实施方式
现结合附图对本发明作进一步的描述。
在本发明中,将JavaScript脚本的执行过程分配在客户端与服务器端分别执行。客户端用于执行JavaScript脚本的装置为客户端浏览器,服务器端用于执行JavaScript脚本的装置为服务器解析平台。在图1中示出了本发明中所涉及的系统示意图。其中的服务器解析平台能够实现对JavaScript脚本中的代码片段的分配,能够对分配给自己的代码片段做解释执行并保存解释执行所得到的数据,还能够拼接各个代码片段解释执行后所得到的数据。所述客户端浏览器能够对被分配的代码片段做解释执行,并将解释执行所得到的数据返回给服务器解析平台。在后文中,将会对服务器解析平台的结构做详细描述。
本发明中所涉及的客户端浏览器所在的客户端可以是移动终端,也可以是PC端,在本发明的实施例中,都以移动终端为例进行说明。
本发明的JavaScript执行过程控制方法将JavaScript脚本的执行过程分配在客户端与服务器端分别执行,在分别执行的过程中需保证JavaScript脚本执行的完整性与正确性,下面就本发明的JavaScript执行过程控制方法的具体实现步骤做如下说明。
参考图2,本发明的方法包括:
步骤1)、服务器解析平台获取与移动终端发送的URL请求对应的Web服务的原始数据,并从该原始数据中识别出JavaScript脚本。
步骤2)、获取分配对象信息。
所述分配对象信息描述了该JavaScript脚本中的哪些代码片段需在服务器解析平台执行,哪些代码片段需要在客户端浏览器中执行。例如,在一分配对象信息中,对需要分配到服务器解析平台的代码片段的名称进行了描述,如将一用于实现加法操作的、名称为sum的函数的代码片段分配到服务器解析平台执行;在另一分配对象信息中,对需要分配到服务器解析平台的代码片段的位置进行了描述,如将一JavaScript脚本中位于标记“<%”和“%>”之间的代码片段分配到服务器解析平台执行;还可采用其他方式描述需要分配到服务器解析平台或客户端浏览器执行的代码片段。作为一种可选的实现方式,在分配对象信息中,只描述需要分配到服务器解析平台的代码片段,JavaScript脚本中那些未在分配对象信息中描述的代码片段都被分配到客户端浏览器执行。当然,反之在分配对象信息中只描述需要分配到客户端浏览器的代码片段亦可。
优选地,JavaScript脚本中规模庞大、结构复杂的代码片段,或需要Activex控件和flash控件来实现的复杂页面交互操作的代码片段(如电子商务系统中的支付功能,企业管理系统中的流程监控功能)放在服务器解析平台中执行,将JavaScript脚本中仅需要用户少量参与的代码片段(如一登录系统中的登录页面,一简单的用户调查页面),或JavaScript脚本中除适合在服务器解析平台中执行的代码片段之外的其他代码片段放在客户端浏览器中执行。在实际使用中也可根据用户需要进行调整。
所述分配对象信息可以由用户实时设定,也可预先设定后存储,当需要执行JavaScript脚本时再实时调用。
步骤3)、在服务器解析平台中,判断步骤1)所获取的JavaScript脚本中是否存在未经解释执行的代码,若不存在,执行步骤6),若存在,由所述服务器解析平台提取JavaScript脚本中的一段未经解释执行的代码,根据该代码片段是否与分配对象信息相对应来确定该代码片段在客户端浏览器上解释执行,还是在服务器解析平台上解释执行,若在客户端浏览器上解释执行,将所述未经解释执行的代码片段标识为第一代码片段并分配到客户端浏览器,然后执行步骤4),若在服务器解析平台上解释执行,将所述未经解释执行的代码片段标识为第二代码片段并分配到服务器解析平台,然后执行步骤5)。
本步骤中,将需要在客户端浏览器解释执行的代码片段称为第一代码片段,将需要在服务器解析平台解释执行的代码片段称为第二代码片段。所述第一代码片段与所述第二代码片段都有一个或多个,具体的数量根据JavaScript脚本的实际情况以及用户的需求而定。此外,JavaScript脚本本身并不仅仅包含JavaScript片段,还可以有HTML片段或CSS片段,因此无论是第一代码片段还是第二代码片段,每一代码片段可以是某一单一类型的代码片段,如仅包含一个独立的JavaScript片段,也可以是不同类型的代码片段的组合,如不仅包含JavaScript片段,也包含HTML片段,还可包含CSS片段。
在本实施例中,本步骤在实现时采用了控制点标签,即:将JavaScript脚本中的各个代码片段起始处作为控制点,为所述控制点设置控制点标签。在所述控制点标签中包含有对本步骤中所提到的判断操作以及代码片段分配操作的描述,结合分配对象信息与控制点标签,服务器解析平台实现了本步骤中所提到的上述操作。在其他实施例中,也可采用其他方式完成控制点标签所要完成的功能。
步骤4)、客户端浏览器根据第一代码片段的类型调用对应的执行器,通过所述执行器解释执行所述代码片段,在解释执行的过程中生成该代码片段的中间状态、中间参数、中间结果,将这些数据返回给服务器解析平台,然后重新执行步骤3)。
客户端浏览器对第一代码片段做解释执行后所得到的数据(中间状态、中间参数、中间结果)会返回给服务器解析平台,服务器解析平台可以为该第一代码片段创建一个独立的缓存,专门用于用户存储该第一代码片段解释执行后所得到的数据。在其他实施例中,服务器解析平台也可以在一公共缓存中存储该第一代码片段解释执行后所得到的数据,只是要为这些数据做特别的标注。
客户端浏览器在解释执行代码片段时可能需要用到服务器解析平台对另一代码片段的解释执行结果。在下文中将提到,服务器解析平台会为每一个代码片段创建独立的工作空间与独立的缓存,并将解释执行过程中所得到的参数、状态、结果保存中该独立缓存中,因此,当客户端浏览器需要这些结果时,可从对应的缓存读取。
本步骤中,对代码片段的解释执行可通过调用对应的执行器实现。例如,对于代码片段中的JavaScript代码可调用JavaScript引擎来解释执行该片段,对于HTML代码可调用HTML解析器来解释执行该片段,对于CSS代码可调用CSS解析器来解释执行该片段。当然在某些情况下,待解释执行的代码片段包含有不止一种的代码类型,如在一待解释执行的代码片段中同时包含HTML代码与JavaScript代码,由于HTML代码和JavaScript代码之间本身都有标签分隔开,因此在解释执行时很容易区分这些代码并调用对应的执行器。
步骤5)、服务器解析平台为步骤3)所得到的第二代码片段创建独立的工作空间与独立的缓存,在所述独立的工作空间中调用相应的执行器完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中,然后重新执行步骤3)。
在本申请中,一个工作空间以及缓存对应一个特定的代码片段。在所述的工作空间中,通过调用对应的执行器实现对对应代码片段的解释执行。在步骤4)中,已经对如何根据代码片段的类型调用对应的执行器做了详细描述,此处不再重复。在对代码片段的解释执行过程中,会产生一系列的中间状态、中间参数、中间结果,这些数据都会被保存在独立缓存内。所述独立缓存具有全局性,其中所保存的数据可以为其他对象所访问。
本领域技术人员都知道,一JavaScript脚本中的不同代码片段之间可能存在一定的逻辑结构,如一函数对另一函数的调用,一父页面对子页面的调用。所述工作空间对代码片段解释执行中所生成的中间状态、中间参数、中间结果的存储可以使得不同代码片段间的逻辑关系得到保留,而不必花费大量的资源来关注整个JavaScript脚本的逻辑结构。
步骤6)、在服务器解析平台中,将客户端浏览器和服务器解析平台对各个代码片段的解释执行结果串接起来,实现对JavaScript脚本的完整执行。
在对各个代码片段的解释执行所得到的数据进行串接的过程中,需要用到一个或多个第一代码片段、一个或多个第二代码片段保存在各自的独立缓存中的数据,以及Session(会话)&Cookie(小型文本文件)等信息。在串接时,按照代码片段的顺序逻辑,后执行的某一代码片段可能已经调用了之前某一代码片段解释执行所得到的数据(如中间状态、中间参数、中间结果),并生成相应的解释执行数据,则在串接的过程中就无需再次调用前执行代码片段解释执行所得到的数据,可直接调用后执行代码片段解释执行所得到的数据。当然,也存在各个代码片段解释执行所得到的数据相互独立的情况,此时可调用各个代码片段解释执行所得到的数据,然后按照这些代码片段之间的逻辑顺序依次串接。对代码片段解释执行所得到的数据进行串接的过程可在一独立的工作空间中完成。
以上是对本发明方法在一个实施例中的基本实现步骤的描述。在上述步骤中,通过一个循环操作依次从JavaScript脚本中提取一段代码片段,然后将其分配在客户端浏览器或服务器解析平台上执行;在客户端浏览器执行的第一代码片段有一个或多个,在服务器解析平台上执行的第二代码片段也可以有一个或多个。为了便于理解,图3对所述第一代码片段、第二代码片段解释执行的时序做了描述。从图中可以看出,第一代码片段解释执行后的数据会返回给服务器解析平台(301),第二代码片段解释执行后的数据也会在服务器解析平台加以保存(302)。而所述第一代码片段或第二代码片段在解释执行时也可能会用到一个或多个其他第一代码片段或第二代码片段的解释执行后的数据,因此需要在解释执行时调用相关数据(303)。虽然在图3中仅仅示出了一个第一代码片段和一个第二代码片段的解释执行时序,但本领域技术人员应当明白,在对整个JavaScript脚本的解释执行过程中,对其他的第一代码片段或第二代码片段做解释执行的时序逻辑也与此类似。在执行过程中,可能存在多次第一代码片段与第二代码片段的交互,如图1所示,在客户端浏览器解释执行第一代码片段期间可以多次请求并使用其他第一代码片段或第二代码片段解释执行的中间状态、中间参数、中间结果,同时在服务器解析平台解释执行第二代码片段期间可以多次请求并使用其他第一代码片段或第二代码片段解释执行的中间状态、中间参数、中间结果。
本发明还提供了一种与JavaScript执行过程控制方法相对应的系统,该系统包括位于服务器端的服务器解析平台与位于客户端的浏览器。
在一个实施例中,服务器解析平台进一步包括有代码片段分配模块、解释执行模块以及串接模块。所述代码片段分配模块用于将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;其中,分配到客户端浏览器的代码片段为第一代码片段,分配到服务器解析平台的代码片段为第二代码片段。所述解释执行模块用于为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在所述独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中。所述解释执行模块包含有JavaScript引擎、HTML解析器、CSS解析器、Session&Cookie管理器等解释执行工具。所述串接模块用于将各个第一代码片段和第二代码片段的解释执行结果串接起来。所述客户端的浏览器用于解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台。
在另一个实施例中,服务器解析平台还包括获取分配对象信息模块,该模块获取分配对象信息;所得到的分配对象信息输入代码片段分配模块后,所述代码片段分配模块根据所述分配对象信息将所述代码片段分配在服务器解析平台或客户端浏览器。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种JavaScript脚本的执行过程控制方法,用于将JavaScript脚本的执行过程在位于服务器端的服务器解析平台与位于客户端的浏览器上加以分配,该方法包括:
分配代码片段的步骤,该步骤包括将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;其中,分配到客户端浏览器的代码片段为第一代码片段,分配到服务器解析平台的代码片段为第二代码片段;
客户端浏览器解释执行第一代码片段的步骤,该步骤包括:解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台;
服务器解析平台解释执行第二代码片段的步骤,该步骤包括:为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在所述独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中;
串接步骤,该步骤包括:将各个第一代码片段和第二代码片段的解释执行结果串接起来。
2.根据权利要求1所述的JavaScript脚本的执行过程控制方法,其特征在于,在所述的分配代码片段的步骤之前还包括:获取分配对象信息的步骤;在所述分配代码片段的步骤中,根据所述分配对象信息将所述第一或第二代码片段分配在服务器解析平台或客户端浏览器。
3.根据权利要求2所述的JavaScript脚本的执行过程控制方法,其特征在于,根据所述分配对象信息将JavaScript脚本中规模庞大、结构复杂的代码片段放在服务器解析平台中执行,将JavaScript脚本中需要用户参与的代码片段放在客户端浏览器中执行。
4.根据权利要求1所述的JavaScript脚本的执行过程控制方法,其特征在于,在客户端浏览器解释执行第一代码片段的步骤之后,还包括为第一代码片段解释执行所得到的中间状态、中间参数、中间结果在服务器解析平台中创建独立缓存的步骤。
5.根据权利要求1或2或4所述的JavaScript脚本的执行过程控制方法,其特征在于,所述独立缓存所保存的第一或第二代码片段在解释执行过程中所产生的中间状态、中间参数、中间结果具有全局性。
6.根据权利要求1或2或4所述的JavaScript脚本的执行过程控制方法,其特征在于,所述串接步骤包括:创建一个用于生成完整JavaScript脚本的工作空间,在该工作空间中将各个第一代码片段和第二代码片段的解释执行结果串接起来。
7.根据权利要求1或2或4所述的JavaScript脚本的执行过程控制方法,其特征在于,所述客户端为移动终端。
8.一种JavaScript脚本的执行过程控制系统,其特征在于,包括位于服务器端的服务器解析平台与位于客户端的浏览器;其中,所述服务器解析平台包括代码片段分配模块、解释执行模块以及串接模块;其中,
所述代码片段分配模块用于将JavaScript脚本中的多个代码片段分别分配到服务器解析平台或客户端浏览器;其中,分配到客户端浏览器的代码片段为第一代码片段,分配到服务器解析平台的代码片段为第二代码片段;
所述解释执行模块用于为一个或多个第二代码片段创建独立的工作空间和独立的缓存,在所述独立的工作空间中完成解释执行过程,将解释执行过程所得到的中间状态、中间参数、中间结果保存在所述独立的缓存中;
所述客户端的浏览器用于解释执行一个或多个第一代码片段,将解释执行所得到的中间状态、中间参数、中间结果返回给服务器解析平台;
所述串接模块用于将各个第一代码片段和第二代码片段的解释执行结果串接起来。
9.根据权利要求8所述的JavaScript脚本的执行过程控制系统,其特征在于,所述服务器解析平台还包括获取分配对象信息模块,该模块用于获取分配对象信息;所得到的分配对象信息输入代码片段分配模块后,所述代码片段分配模块根据所述分配对象信息将所述第一或第二代码片段分配在服务器解析平台或客户端浏览器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310677078.2A CN103677951A (zh) | 2013-12-11 | 2013-12-11 | 一种JavaScript脚本的执行过程控制方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310677078.2A CN103677951A (zh) | 2013-12-11 | 2013-12-11 | 一种JavaScript脚本的执行过程控制方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103677951A true CN103677951A (zh) | 2014-03-26 |
Family
ID=50315608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310677078.2A Pending CN103677951A (zh) | 2013-12-11 | 2013-12-11 | 一种JavaScript脚本的执行过程控制方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103677951A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270443A (zh) * | 2014-09-29 | 2015-01-07 | 北京掌中经纬技术有限公司 | 一种能够动态解析Web应用的云计算系统及方法 |
CN104317570A (zh) * | 2014-09-29 | 2015-01-28 | 北京掌中经纬技术有限公司 | 动态解析Web应用的装置和方法 |
WO2019238145A1 (zh) * | 2018-06-15 | 2019-12-19 | 搜游网络科技(北京)有限公司 | 一种基于WebGL的图形绘制方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102487403A (zh) * | 2010-12-03 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 由服务器端执行js的方法和装置 |
US8510378B2 (en) * | 2007-11-21 | 2013-08-13 | Appcelerator, Inc. | System and method for auto-generating JavaScript |
-
2013
- 2013-12-11 CN CN201310677078.2A patent/CN103677951A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8510378B2 (en) * | 2007-11-21 | 2013-08-13 | Appcelerator, Inc. | System and method for auto-generating JavaScript |
CN102487403A (zh) * | 2010-12-03 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 由服务器端执行js的方法和装置 |
Non-Patent Citations (3)
Title |
---|
张波等: "《LiveWire程序的开发与应用》", 《核电子学与探测技术》 * |
张涛: "《JavaScript 开发客户端完整表单验证程序》", 《电脑编程技巧与维护》 * |
赵祺等: "《一种面向富客户端应用的运行时自适应中间件》", 《软件学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104270443A (zh) * | 2014-09-29 | 2015-01-07 | 北京掌中经纬技术有限公司 | 一种能够动态解析Web应用的云计算系统及方法 |
CN104317570A (zh) * | 2014-09-29 | 2015-01-28 | 北京掌中经纬技术有限公司 | 动态解析Web应用的装置和方法 |
CN104317570B (zh) * | 2014-09-29 | 2017-12-12 | 北京掌中经纬技术有限公司 | 动态解析Web应用的装置和方法 |
CN104270443B (zh) * | 2014-09-29 | 2017-12-12 | 北京掌中经纬技术有限公司 | 一种能够动态解析Web应用的云计算系统及方法 |
WO2019238145A1 (zh) * | 2018-06-15 | 2019-12-19 | 搜游网络科技(北京)有限公司 | 一种基于WebGL的图形绘制方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3667520A1 (en) | Webpage content extraction method and terminal device | |
CN107766344B (zh) | 一种模板渲染的方法、装置及浏览器 | |
CN109284454B (zh) | 页面渲染方法、装置、计算机设备及存储介质 | |
CN104317570B (zh) | 动态解析Web应用的装置和方法 | |
CN104461513B (zh) | 一种生成表单界面的方法及装置 | |
CN101196913A (zh) | 变色龙图形用户界面 | |
JP2006323812A (ja) | ウェブページの諸相を評価する方法および装置 | |
CN112699040B (zh) | 压力测试方法、装置、设备及计算机可读存储介质 | |
CN108595468A (zh) | 一种网页数据的获取方法、装置、服务器、终端和系统 | |
CN113051514A (zh) | 元素的定位方法、装置、电子设备及存储介质 | |
CN110213105A (zh) | 一种跨平台微应用创建方法 | |
CN104270443B (zh) | 一种能够动态解析Web应用的云计算系统及方法 | |
CN114253537A (zh) | 表单生成方法及装置、电子设备和存储介质 | |
CN115712422A (zh) | 表单页面的生成方法、装置、计算机设备及存储介质 | |
CN103677951A (zh) | 一种JavaScript脚本的执行过程控制方法和系统 | |
CN109597952B (zh) | 网页信息处理方法、系统、电子设备和存储介质 | |
US10296299B2 (en) | Server-side weaving of application-oriented-programming advice into computer code that preempts client-side load-time weaving | |
US11604662B2 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
CN114661745A (zh) | 基于rpa和ai的招聘信息发布方法及装置 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN115562662A (zh) | 应用页面的创建方法、装置、计算机设备及存储介质 | |
CN115061678A (zh) | 一种基于浏览器代理服务的代码编译方法及客户端 | |
CN115145674A (zh) | 基于动态锚点的页面跳转方法、装置、设备及介质 | |
CN104239452A (zh) | 资源获取方法及装置 | |
Kim | Cloud computing to improve Javascript processing efficiency of mobile applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |