手机浏览器服务器端及其实现浏览器双线程模式的方法技术

技术编号:7224105 阅读:338 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种手机浏览器服务器端实现浏览器双线程模式的方法,在手机浏览器服务器端设置监控线程;该方法还包括:监控线程对浏览器内核线程执行的程序脚本是否正常进行监控,并在程序脚本执行时间到时对未结束执行的程序脚本强制结束;监控线程对浏览器内核线程指定的需执行任务进行监控,在计时器超时时将需执行任务放入时间事件队列。本发明专利技术还同时公开了一种手机浏览器服务器端,采用本发明专利技术能在不影响代码质量和执行效率,保证服务器端稳定、安全、可靠运行的同时,简单方便地实现手机浏览器的双线程内核。

【技术实现步骤摘要】

本专利技术涉及手机浏览器技术,尤其是涉及一种。
技术介绍
随着移动通信和网络业务的迅猛发展,移动终端如手机能提供越来越多的功能和业务,如短信、彩信、上网功能等等。以移动终端是手机为例,在手机上实现上网功能,就需要在手机上装载浏览器,于是就出现了手机浏览器。所谓手机浏览器是专门运行于手机上的浏览器,可以实现通过手机上网浏览各种互联网内容。在实际应用中,手机终端一侧作为手机浏览器客户端,对应的网络侧作为手机浏览器服务器端,手机浏览器服务器端接收手机浏览器客户端上网浏览的请求,下载并处理网页,然后推送给手机浏览器客户端显示网页内容的后台处理程序,向用户显示所浏览的网页内容。目前,手机浏览器分为两种一种称为全页面渲染的浏览器,是装载于手机浏览器客户端的一个独立的程序,能使手机用户像在计算机上使用浏览器一样,但这种浏览器大都适用于高端智能手机,只有这类手机的性能才能满足全页面渲染浏览器的运行;另一种是带后台处理的浏览器,这类浏览器中,用户并不直接从站点下载内容,而是将请求提交给统一的服务器,由服务器端的一系列程序如下载、解析、JS执行等等程序处理过后,将一个轻量级的超文本链接标示语言(HTML)页面推送给手机浏览器客户端并呈现给用户。这里, JS是JavMcript的简称,是一种动态的页面编程语言,通常嵌入在HTML文件中,用于对页面进行处理和操作,响应用户请求,是页面可交互性的主要支撑。随着动态网页的发展,对于浏览器,目前最为影响性能的就是JavMcript脚本的执行,特别是很多网络应用程序已开始不断涌现。目前各种JS引擎都在努力提高自身的性能,但JS引擎是一个庞大的编译及执行系统,对资源的消耗比较大。一般,普通的智能手机对于复杂的JS程序还有些困难,因此,现有大多数手机浏览器采用的都是带后台处理的浏览器,本文也主要针对第二种浏览器的实现进行讨论。如图1所示,这种浏览器的处理流程是这样当用户使用带后台处理的浏览器访问网页时,浏览器程序会通过无线网络向后台服务器发送页面请求,由后台服务器与互联网进行通讯,将网页内容下载,之后再由后台服务器对网页内容进行处理,最终形成一个简单的HTML页面,发送到手机浏览器客户端。这里,后台服务器可作为手机浏览器服务器端。通过上述流程,可以大大减轻客户端浏览器的压力,由于目前大多数智能手机的性能还无法与计算机的性能相比,因此,简化客户端程序是非常必要的。也就是说,原先在计算机上实现的浏览器程序,现在需要由手机浏览器客户端程序和后台服务器共同完成; 具体的,采用带后台服务器模式的手机浏览器,将复杂的任务交给后台服务器执行,而手机浏览器客户端只负责显示最简单的页面,这样可以增强客户端的体验。对于采用带后台服务器模式的手机浏览器,后台服务器的主要功能包括帮助客户端浏览器程序执行JavMcript语句;下载网页内容,并进行处理和过滤后再推送给客户端,以大大减少无用信息占用用户流量的比例,为用户节省流量;将网页改造成为适合手机显示的模式,以增强用户体验;响应用户请求事件,比如按钮点击等等。相应的,手机浏览器客户端可实现的功能包括解析和渲染最简单的不带JavMcript语句,甚至不带层叠样式表0:SS,Cascading Style Sheets)信息的HTML页面;向后台服务器发送各种请求,如打开网页、点击按钮等等。对于带后台处理的手机浏览器,后台服务器基本上对用户来说是透明的,不仅用户体验不会降低,而且这种浏览器可大大减少程序的大小,简化手机浏览器客户端。由于消耗较大的工作都由后台服务器执行,可提升运算速度,且不会使用户感觉机器变慢等等,这种方式很适合手机这类移动终端使用。但与此同时,对于服务器来说,会面临很大的压力 首先,传统意义上的浏览器是客户端程序,比如HTML解析、Jav必cript执行等等功能,如果遇到恶意代码,如死循环或crash,用户只需要关闭即可;但如果服务器端程序陷入死循环或crash,就会使整个平台不能运转,进而影响到所有的用户;第二,客户端大多采用多线程、多进程等方式来处理页面,而服务器端不能采用类似多线程或多进程的模式,因为所有用户的页面数据都在服务器端保存,线程数或进程数将非常大,服务器端是无法承受的; 第三,页面存在生存期的问题,大量页面聚积在服务器上,可能会超出服务器的内存。鉴于上述问题,同时考虑到浏览器是一个开放平台,很多功能需要开放给用户及网站开发者使用,因此,为了保证服务器的健壮性、稳定性和安全性,使服务器正常运作,现有一种最简单的方案是有选择性的支持某些操作或者标准,这种方案可禁止所有可能引发问题的模块的执行,只提供最简单的服务。其基本流程如图2所示,包括获取到网页数据后,先去除JS标签及其内容;再解析HTML建立DOM树;计算CSS数据并插入到相应的标签中;之后反序列化,生成新的HTML页面,推送给用户的手机浏览器客户端;最后清除页面数据。这种方案先将JavMcript除去,不支持浏览器脚本,在生成简单页面并传递给用户后,即从服务器上删除。但这种方案存在一些问题,就是第一、交互性差。这种方法由于无法支持JavaScript,因此几乎没有网页交互性可言,像论坛、邮箱等也大多不能支持;第二,过于简单,后台优势没有得到发挥。显然,这种方案中后台服务器程序基本只是一个中转站用来过滤,使用后台服务器就显得有些多余,而且提供的页面也过于简单,用户体验非吊^^ ο现有技术还提出一种解决方案,采用监控的概念,且支持更多的操作,但此方案在具体实现上只是简单地在一些程序语句之间添加判断语句,比如在JavaScript语句执行时,设置计数器,每执行几步就将计数器加1,如果执行超过一定次数,就认为超时或者死循环而退出。因此,这种方案存在以下问题一方面,由于每隔一定执行间隙就要添加代码, 不仅降低了代码质量,影响代码执行效率,而且还会使代码膨胀,如果需要监控太多操作的话,就会使得代码掺杂太多的无用代码,直接扩大了程序规模;另一方面,采用这种方案在需要改动代码时,还需要考虑这些掺杂的代码问题,如果程序添加了某项功能,需要监控时,也需要对这项功能掺杂一些代码,很不方便,因此该方案可扩展性差。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种,能在不影响代码质量和执行效率,保证服务器端稳定、安全、可靠运行的同时,简单方便地实现手机浏览器的双线程内核。为达到上述目的,本专利技术的技术方案是这样实现的本专利技术提供了一种手机浏览器服务器端实现浏览器双线程模式的方法,在手机浏览器服务器端设置监控线程;该方法还包括监控线程对浏览器内核线程执行的程序脚本是否正常进行监控,并在程序脚本执行时间到时对未结束执行的程序脚本强制结束;监控线程对浏览器内核线程指定的需执行任务进行监控,在计时器超时时将需执行任务放入预设的时间事件队列。上述方案中,该方法还包括浏览器内核线程在执行程序脚本之前,向监控线程发送监控程序脚本执行的监控任务;并在程序脚本正常执行结束后,使所述监控任务失效。上述方案中,所述监控线程对浏览器内核线程指定的需执行任务进行监控为查看当前是否有监控任务,如果没有监控任务,则监控线程进入睡眠状态;如果有监控任务, 则根据预定执行时间找到最先需要执行的任务,计算预定执行时间与当前时间的本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王震张宁务孟庆
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术