著录项信息
专利名称 | 移动通信终端上网页显示方法及系统 |
申请号 | CN201010523549.0 | 申请日期 | 2010-10-27 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-05-16 | 公开/公告号 | CN102457613A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04M1/725 | IPC分类号 | H;0;4;M;1;/;7;2;5;;;H;0;4;L;2;9;/;0;8查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司 | 当前权利人 | 腾讯科技(深圳)有限公司 |
发明人 | 陈虓将 |
代理机构 | 广州华进联合专利商标代理有限公司 | 代理人 | 何平;曾旻辉 |
摘要
本发明涉及一种移动通信终端上网页显示方法及系统,所述方法包括以下步骤:获取原始网页数据;对所述原始网页数据进行处理得出文本的流量、图片的尺寸和流量,并根据得出的文本流量和图片流量进行分页;发送所述分页。上述移动通信终端上网页显示方法及系统,采用获取到图片的尺寸及流量,根据文本流量及图片流量精确分页,显示时,对图片先预留空间,再获取图片填充到该预留空间,形成完整的一页,不需要重新进行网页显示的排版,提高了网页浏览效率,精确分页,不会因分页过大而增加移动通信终端内存的压力,减轻了移动通信终端内存压力。
移动通信终端上网页显示方法及系统\n【技术领域】\n[0001] 本发明涉及一种计算机技术领域,特别涉及一种移动通信终端上网页显示方法及系统。\n【背景技术】\n[0002] 随着移动通信终端价格和入网费用的降低及3G技术的推广,人们对于移动通信终端上网的需求,逐渐从访问简单以文本为主的Wap网页,转向了直接访问Web网站,获取更加丰富的内容。\n[0003] Web网页包含丰富的图片,图片的原始尺寸和流量往往过大不适合由移动通信终端(如手机)上的浏览器直接浏览,有些手机不支持某些格式的图片解码,必须先由后台图片压缩和格式转化后,在移动通信终端上显示。如手机浏览器在排版时,没有图片尺寸无法为其预留空间,导致排版后开始加载图片时,需要对所有网页重新排版,导致用户光标移动甚至移出屏幕,造成用户浏览的当前位置丢失。\n[0004] 另外,移动通信终端的内存容量一般较小,一张完整的互联网网页不能直接在手机上浏览,因此需要分页,手机用户每次浏览其中一页,通过翻页浏览上下页。由于分页时不知道图片的实际流量,只能忽略或粗略估计,导致分页的实际流量和用户通过手机浏览器设置的分页流量相差很大,分页之间的流量不均匀,这样存在分页流量偏大或偏小的情况,分页偏大则造成手机内存不足而崩溃,偏小则分页过多,导致多次切换分页,降低浏览效率。\n【发明内容】\n[0005] 基于此,有必要提供一种移动通信终端上网页显示方法,不需进行重复排版且能够合理分页,提高了网页浏览效率,减轻了移动通信终端内存压力。\n[0006] 一种移动通信终端上网页显示方法,包括以下步骤:\n[0007] 获取原始网页数据;\n[0008] 对所述原始网页数据进行处理得出文本流量、图片的尺寸和流量,并根据得出的文本流量和图片流量进行分页;\n[0009] 发送所述分页。\n[0010] 优选地,所述对所述原始网页数据进行处理得出文本流量、图片的尺寸和流量,并根据得出的文本流量和图片流量进行分页的步骤具体包括以下步骤:\n[0011] 对所述原始网页数据进行处理生成文档对象模型树,所述文档对象模型树包括节点、节点的层级关系及节点属性,所述节点包括文本节点和图片节点,从所述文档对象模型树中收集图片节点、图片节点属性、文本节点和文本节点属性,并从所述图片节点属性中获取图片网页地址,从文本节点属性获取文本的长度;\n[0012] 根据所述图片网页地址从图片信息缓存服务器中获取所述图片的尺寸和流量;\n[0013] 将所述图片的尺寸更新到所述图片节点属性中,根据所述文本长度计算文本流量,根据所述获取的图片流量和计算的文本流量进行分页;\n[0014] 获取移动通信终端上传的显示分辨率,根据所述移动通信终端的显示分辨率对所述获取的图片进行处理得到相应的图片尺寸和流量,并将处理后的图片尺寸和流量发送给所述图片信息缓存服务器进行更新。\n[0015] 优选地,根据所述图片流量和文本流量进行分页的步骤具体包括以下步骤:\n[0016] 步骤S2610,设定分页流量的第一阈值和第二阈值,且设定当前分页的流量值为零,并将所述文档对象模型树中的根节点的第一个子节点设为当前节点,所述父节点为根节点;\n[0017] 步骤S2612,逐一遍历所述文档对象模型树中节点;\n[0018] 步骤S2614,计算所述当前节点和当前节点属性总流量,累计到所述当前分页的流量值中;\n[0019] 步骤S2616,判断所述当前节点是否含有子节点,若是,转入步骤S2618,若否,转让步骤S2620;\n[0020] 步骤S2618,将所述当前节点设为新的父节点,该新的父节点的第一个子节点设为新的当前节点,再转入步骤S2614;\n[0021] 步骤S2620,判断当前节点是否为父节点的最后一个子节点,若是,则转入步骤S2622,否则转入步骤S2624;\n[0022] 步骤S2622,根据所述当前分页的流量值与所述第一阈值和第二阈值比较的结果,对所述父节点标记分页标识;\n[0023] 步骤S2624,判断当前节点是否为父节点的最后一个子节点,若否,转入步骤S2626,若是,转入步骤S2628;\n[0024] 步骤S2626,设置所述父节点的子节点中与当前节点相邻的节点为新的当前节点,再转入步骤S2614;\n[0025] 步骤S2628,判断父节点是否为根节点,若是,遍历结束,若否,则转入步骤S2630;\n[0026] 步骤S2630,将父节点设为当前节点,父节点的父节点设为新的父节点,转入步骤S2624。\n[0027] 优选地,步骤S2622包括:\n[0028] 步骤S26220,判断当前分页的流量值是否小于所述第一阈值,或者判断所述当前分页的流量值是否大于等于第一阈值小于第二阈值且父节点处于所述文档对象模型树的层数大于预设层数,若是,则转入步骤S2624,若否,则转入步骤S26222;\n[0029] 步骤S26222,判断父节点是否为所述父节点的父节点的最后一个子节点,若否,转入步骤S26224,若是,转入步骤S26226;\n[0030] 步骤S26224,对父节点标记分页标识,且将所述当前分页的流量值重新置为零,再转入步骤然S2624;\n[0031] 步骤S26226,判断父节点的父节点是否为根节点,若是,转入步骤S26228,若否,转入步骤S26230;\n[0032] 步骤S26228,对父节点的父节点标记分页标识,遍历结束;\n[0033] 步骤S26230,设置父节点的父节点为新的当前节点,父节点的父节点的父节点为新的父节点,转入步骤S26222。\n[0034] 优选地,步骤发送所述分页的具体步骤是:\n[0035] 步骤S300,将根节点的第一个子节点设为当前节点,根节点设为当前的父节点,分页字符串和分页队列设为空;\n[0036] 步骤S302,将父节点对应的文本加入到分页字符串中;\n[0037] 步骤S304,判断当前节点是否有子节点,若有,转入步骤S306,若没有,转入步骤S308;\n[0038] 步骤S306,将当前节点的第一个子节点设为新的当前节点,将当前节点设为新的父节点,再转入步骤S302;\n[0039] 步骤S308,将当前节点对应的文本加入到分页字符串中,再转入步骤S310;\n[0040] 步骤S310,判断当前节点是否有分页标识,若否,则转入步骤S312,若是,则转入步骤S330;\n[0041] 步骤S312,判断当前节点是否为父节点的最后一个子节点,若否,转入步骤S314,若是,转入步骤S316;\n[0042] 步骤S314,将父节点的子节点中与当前节点相邻的节点设为新的当前节点,再转入步骤S304;\n[0043] 步骤S316,判断父节点是否为根节点,若是,转入步骤S318,若否,则转入步骤S320;\n[0044] 步骤S318,将分页字符串存放到分页队列中;\n[0045] 步骤S320,判断父节点是否有分页标识,若否,转入步骤S322,若是,转入步骤S324;\n[0046] 步骤S322,将父节点设为新的当前节点,父节点的父节点设为新的父节点,转入步骤S312;\n[0047] 步骤S324,判断父节点是否为根节点,若是,转入步骤S326,若否,转入步骤S328;\n[0048] 步骤S326,将分页字符串存放到分页队列中;\n[0049] 步骤S328,将父节点设为新的当前节点,转入步骤S330;\n[0050] 步骤S330,将分页字符串存放到分页队列中,并从所述文档对象模型树上删除当前节点及已遍历过的当前节点的相邻节点,将父节点设为新的当前节点,再转入步骤S332;\n[0051] 步骤S332,判断当前节点是否为根节点,若是,则转入步骤S300,若否,转入步骤S334;\n[0052] 步骤S334,从所述文档对象模型树中删除已遍历过的当前节点的相邻节点,然后将父节点设为新的当前节点,再转入步骤S332。\n[0053] 此外,还有必要提供一种移动通信终端上网页显示系统,不需进行重复排版且能够合理分页,提高了网页浏览效率,减轻了移动通信终端内存压力。\n[0054] 一种移动通信终端上网页显示系统,包括:\n[0055] Web页面转换服务器用于获取原始网页数据,并对所述原始网页数据进行处理得出文本流量、图片的尺寸和流量,并根据得出的文本流量和图片流量进行分页,并发送所述分页。\n[0056] 优选地,还包括图片缓存服务器、图片信息缓存服务器和图片转换服务器,所述图片缓存服务器,用于存储图片及图片网页地址;\n[0057] 所述Web页面转换服务器还用于对所述获取的原始网页数据进行处理生成文档对象模型树,所述文档对象模型树包括节点、节点的层级关系及节点属性,所述节点包括文本节点和图片节点,从所述文档对象模型树中收集图片节点、图片节点属性、文本节点和文本节点属性,并从所述图片节点属性中获取图片网页地址,从文本节点属性获取文本的长度,接收移动通信终端上传的显示分辨率,将所述图片网页地址及所述移动通信终端的显示分辨率发送到图片信息缓存服务器;\n[0058] 所述图片信息缓存服务器用于存储图片的尺寸和流量,还根据所述图片网页地址查找与所述图片网页地址相对应的图片的尺寸和流量,并将获取的图片的尺寸和流量返回给所述Web页面转换服务器;\n[0059] 所述Web页面转换服务器将返回的图片的尺寸更新到所述图片节点属性中,根据文本的长度计算文本流量,并根据所述返回的图片的流量和计算得到的文本流量进行分页;\n[0060] 所述图片转换服务器用于根据所述图片的尺寸及移动通信终端的显示分辨率对所述图片进行处理,将处理后的图片的尺寸和流量发送给所述图片信息缓存服务器,将处理后的图片发送给所述图片缓存服务器存储;所述图片信息缓存服务器更新已存储的所述图片的尺寸和流量。\n[0061] 优选地,还包括分页缓存服务器,用于接收所述Web页面转换服务器发送的分页,并逐一发送所述接收的分页。\n[0062] 优选地,所述Web页面转换服务器包括根据所述图片流量和文本流量进行分页的分页计算模块,所述文档对象模型树中的节点分为根节点、父节点和子节点,所述分页计算模块包括初始化子模块、遍历子模块、计算子模块、第一判断子模块、设置子模块和分页标记子模块;\n[0063] 所述初始化子模块用于设定分页流量的第一阈值和第二阈值,且设定当前分页的流量值为零,并将所述文档对象模型树中的根节点的第一个子节点设为当前节点,所述父节点为根节点;\n[0064] 所述遍历子模块用于逐一遍历所述文档对象模型树中节点;\n[0065] 所述计算子模块用于计算所述当前节点和当前节点属性总流量,累计到所述当前分页的流量值中;\n[0066] 所述第一判断子模块用于判断所述当前节点是否含有子节点,若是,则所述设置子模块将所述当前节点设为新的父节点,该新的父节点的第一个子节点设为新的当前节点,所述计算子模块计算新的当前节点和新的当前节点属性总流量,累计到所述当前分页的流量值中,若否,则所述第一判断子模块进一步判断当前节点是否为父节点的最后一个子节点,若是,则所述分页标记子模块根据所述分页流量当前值与所述第一阈值和第二阈值比较的结果,对所述父节点标记分页标识,若否,则所述第一判断子模块进一步判断当前节点是否为父节点的最后一个子节点,若不是,则所述设置子模块设置所述父节点的子节点中与当前节点相邻的节点为新的当前节点,再由所述计算子模块计算新的当前节点和新的当前节点属性总流量,累计到所述当前分页的流量值中,若是,则所述第一判断子模块进一步判断父节点是否为根节点,若是,则所述遍历子模块结束遍历,若否,则所述设置子模块将父节点设为当前节点,父节点的父节点设为新的父节点。\n[0067] 优选地,所述第一判断子模块进一步判断当前分页的流量值小于所述第一阈值,或者所述第一判断子模块判断当前分页的流量值大于等于所述第一阈值小于所述第二阈值且父节点处于所述文档对象模型树的层数大于预设层数,则所述第一判断子模块进一步判断当前节点是否为父节点的最后一个子节点;所述第一判断子模块进一步判断当前分页的流量值大于等于所述第一阈值小于所述第二阈值且父元素处于所述文档对象模型树的层数小于所述预设层数,或者分页流量当前值大于等于所述第二阈值,所述第一判断子模块判断父节点是否为所述父节点的父节点的最后一个子节点,若否,则所述分页标记子模块对父节点标记分页标识,且所述设置子模块将所述当前分页的流量值重新置为零,然后所述第一判断子模块进一步判断当前节点是否为父节点的最后一个子节点,若是,则所述第一判断子模块进一步判断父节点的父节点是否为根节点,若是,则所述分页子模块对父节点的父节点标记分页标识,所述遍历子模块结束遍历。\n[0068] 优选地,所述Web页面转换服务器还包括输出分页的分页输出模块,所述分页输出模块包括预设子模块、第二判断子模块、重设子模块和删除子模块,\n[0069] 所述预设子模块用于将根节点的第一个子节点设为当前节点,根节点设为当前的父节点,分页字符串和分页队列设为空,并将父节点对应的文本加入到分页字符串中;\n[0070] 所述第二判断子模块判断出当前节点有子节点,则所述重设子模块将当前节点的第一个子节点设为新的当前节点,将当前节点设为新的父节点,再将新的父节点的文本加入到所述分页字符串中;所述第二判断模块判断出当前节点没有子节点,则所述重设模块将当前节点对应的文本加入到分页字符串中,且所述第二判断子模块进一步判断出当前节点没有分页标识且当前节点不为父节点的最后一个子节点,则所述重设子模块将当前节点的相邻节点设为新的当前节点,然后转到所述第二判断子模块判断当前节点是否有子节点;所述第二判断子模块判断出当前节点是父节点的最后一个子节点且所述父节点为根节点,所述重设子模块将分页字符串存放到所述分页队列中。\n[0071] 优选地,所述第二判断子模块判断出当前节点是父节点的最后一个子节点且所述父节点不为根节点,若进一步判断所述父节点没有分页标识,则所述重设子模块将所述父节点设为新的当前节点,所述父节点的父节点设为新的父节点;若进一步判断出所述父节点有分页标识且父节点为根节点,则所述重设子模块将分页字符串存放到所述分页队列中;若进一步判断出所述父节点有分页标识且父节点不为根节点,则所述重设子模块将分页字符串存放到所述分页队列中,并将父节点设为当前节点,所述删除子模块删除当前节点及已遍历过的节点。\n[0072] 上述移动通信终端上网页显示方法及系统,采用获取到图片的尺寸及流量,根据文本流量及图片流量精确分页,显示时,对图片先预留图片尺寸的空间,再获取图片填充到预留空间,形成完整的一页,不需要重新进行网页显示的排版,提高了网页浏览效率,精确分页,不会因分页过大而增加移动通信终端内存的压力,减轻了移动通信终端内存压力。\n【附图说明】\n[0073] 图1为一个实施例中移动通信终端上网页显示方法的流程图;\n[0074] 图2为图1中步骤S20的具体步骤流程图;\n[0075] 图3为图2中步骤S26的具体步骤流程图;\n[0076] 图4为图3中步骤S2622的具体步骤流程图;\n[0077] 图5为图1中步骤S30的具体步骤流程图;\n[0078] 图6为一个实施例中移动通信终端上网页显示系统的结构示意图;\n[0079] 图7为图1中Web页面转换服务器的结构示意图;\n[0080] 图8为图7的分页计算模块内部结构示意图;\n[0081] 图9为图7的分页输出模块内部结构示意图。\n【具体实施方式】\n[0082] 下面结合具体的实施例及附图进行详细描述。\n[0083] 如图1所示,在一个实施例中,一种移动通信终端上网页显示方法,包括以下步骤:\n[0084] 步骤S10,获取原始网页数据。信息服务器存储原始网页数据。Web页面转换服务器从信息服务器中获取原始网页数。\n[0085] 步骤S20,对原始网页数据进行处理得出文本流量、图片的尺寸和流量,并根据得出的文本流量和图片流量进行分页。如图2所示,步骤S20的具体步骤包括如下:\n[0086] 步骤S22,对原始网页数据进行处理生成文档对象模型树,该文档对象模型树包括节点、节点的层级关系及节点属性,该节点包括文本节点和图片节点,从该文档对象模型树中收集图片节点、图片节点属性、文本节点和文本节点属性,并从该图片节点属性中获取图片网页地址,从该文本节点属性获取文本的长度。Web页面转换服务器用于从信息服务器中获取原始网页数据并处理,生成文档对象模型(Document Object Model,简称Dom)树,从Dom树中收集图片节点、图片节点属性、文本节点和文本节点属性,并从图片节点属性中获取图片网页地址。其中,该图片网页地址为键值,键值可为字符串值或二进制值等,如字符串值abc123。\n[0087] 步骤S24,根据所述图片网页地址从图片信息缓存服务器中获取所述图片的尺寸和流量。图片缓存服务器中存储有图片的尺寸和流量。图片信息缓存服务器根据图片网址的键值搜索查找到相应的图片尺寸和流量通过协议返回给Web页面转换服务器。图片信息缓存服务器根据图片网页地址查找相应的图片的尺寸和流量时,并非所有的图片均能找到相应的尺寸和流量,未找到的图片采用预设的默认值代替设置未找到的图片的尺寸和流量。\n[0088] 步骤S26,将图片的尺寸更新到图片节点属性中,根据文本长度计算文本流量,根据获取的图片的流量和计算的文本流量进行分页。Web页面转换服务器将返回的图片的尺寸更新Dom树的图片节点属性,将图片的尺寸记录在图片节点属性中,该图片节点属性和分页一起发给移动通信终端。如图3所示,步骤S26具体包括如下步骤:\n[0089] 步骤S2610,设定分页流量的第一阈值和第二阈值,且设定当前分页的流量值为零,并将该文档对象模型树中的根节点的第一个子节点设为当前节点,父节点为根节点。本实施例中,预设分页流量的第一阈值流量为标准流量STANDARD_BYTE,第二阈值为最大流量值MAX_BYTE,为第一阈值的1.2倍。该第二阈值与第一阈值的比例关系可根据需要设定。\n如第一阈值流量为15Kb,第二阈值流量根据移动通信终端实际可显示的流量大小,设定第二阈值可为第一阈值的1.1倍或1.3倍,为16.5Kb或19.5Kb。\n[0090] 步骤S2612,逐一遍历该文档对象模型树中节点。\n[0091] 步骤S2614,计算当前节点和当前节点属性总流量,累计到当前分页的流量值中。\n计算当前节点和当前节点属性总共占用的流量,累计到当前分页的流量值中。\n[0092] 步骤S2616,判断该当前节点是否含有子节点,若是,转入步骤S2618,若否,转让步骤S2620。\n[0093] 步骤S2618,将该当前节点设为新的父节点,该新的父节点的第一个子节点设为新的当前节点,再转入步骤S2614。\n[0094] 步骤S2620,判断该当前节点是否为父节点的最后一个子节点,若是,则转入步骤S2622,否则转入步骤S2624。\n[0095] 步骤S2622,根据该当前分页的流量值与该第一阈值和第二阈值比较的结果,对该父节点标记分页标识。根据比较结果判断是否对父节点打上分页标签,即标记分页标识。\n[0096] 在一个实施例中,如图4所示,步骤S2622的具体步骤包括如下步骤:\n[0097] 步骤S26220,判断当前分页的流量值是否小于所述第一阈值,或者判断该当前分页的流量值是否大于等于第一阈值小于第二阈值且该父节点处于该文档对象模型树的层数大于预设层数,若是,则转入步骤S2624,若否,则转入步骤S26222。\n[0098] 步骤S26222,判断父节点是否为父节点的父节点的最后一个子节点,若否,转入步骤S26224,若是,转入步骤S26226。\n[0099] 步骤S26224,对父节点标记分页标识,且将该当前分页的流量值重新置为零,再转入步骤然S2624。\n[0100] 步骤S26226,判断父节点的父节点是否为根节点,若是,转入步骤S26228,若否,转入步骤S26230。判断父节点的父节点为根结点,则给父节点的父节点打上分页标识,并且遍历结束。\n[0101] 步骤S26228,对父节点的父节点标记分页标识,遍历结束。\n[0102] 步骤S26230,设置父节点的父节点为新的当前节点,父节点的父节点的父节点为新的父节点,转入步骤S26222。\n[0103] 其中,若父节点的父节点不为根节点,则进一步判断父节点的父节点是否为父节点的父节点的父节点的最后一个子节点,若否,则对父节点的父节点标记分页标识,并将分页流量当前值置零,若是,则继续遍历直到遍历到一个节点,该节点不为该节点的父节点的最后一个子节点,或该节点为根节点,则对该节点标记分页标识,并将分页流量当前值置零。若该节点为根节点,则遍历结束。若该节点不为根结点,则转入步骤S2624。即遍历后的节点的处理步骤相同,需要判断该节点是否为该节点的父节点的最后一个子节点,若否,则给该节点标记分页标识,若是,则进一步判断该节点的父节点是否为根结点,若是,则给该节点的父节点标记分页标识,且遍历结束,若否,则继续遍历,继续判断。\n[0104] 步骤S2624,判断当前节点是否为父节点的最后一个子节点,若否,转入步骤S2626,若是,转入步骤S2628。\n[0105] 步骤S2626,设置该父节点的子节点中与当前节点相邻的节点为新的当前节点,再转入步骤S2614。在Dom树中,遍历一层时,从左到右进行,当判断当前节点不为父节点的最后一个子节点,则将该子节点右边的一个子节点设为新的当前节点。\n[0106] 步骤S2628,判断父节点是否为根节点,若是,遍历结束,若否,则转入步骤S2630。\n[0107] 步骤S2630,将父节点设为当前节点,父节点的父节点设为新的父节点,转入步骤S2624。\n[0108] 步骤S28,获取移动通信终端上传的显示分辨率,根据移动通信终端的显示分辨率对获取的图片进行处理得到相应的图片尺寸和流量,并将处理后的图片尺寸和流量发送给图片信息缓存服务器进行更新。图片信息缓存服务器存储处理后的图片的尺寸和流量,即图片信息缓存服务器更新已存储的相应的图片的尺寸和流量,进行自身存储的更新。图片转换服务器根据移动通信终端的显示分辨率对原始图片进行压缩和格式转化处理,当原始图片的宽度小于移动通信终端的屏幕宽度时,不压缩图片;否则,按照原始图片的长宽比压缩图片,压缩后的图片宽度等于移动通信终端的屏幕宽度。\n[0109] 步骤S30,发送该分页。如图5所示,步骤S30的具体步骤包括:\n[0110] 步骤S300,将根节点的第一个子节点设为当前节点,根节点设为当前的父节点,分页字符串和分页队列设为空。\n[0111] 步骤S302,将父节点对应的文本加入到分页字符串中。\n[0112] 步骤S304,判断当前节点是否有子节点,若有,转入步骤S306,若没有,转入步骤S308。\n[0113] 步骤S306,将当前节点的第一个子节点设为新的当前节点,将当前节点设为新的父节点,再转入步骤S302。\n[0114] 步骤S308,将当前节点对应的文本加入到分页字符串中,再转入步骤S310。\n[0115] 步骤S310,判断当前节点是否有分页标识,若否,则转入步骤S312,若是,则转入步骤S330。\n[0116] 步骤S312,判断当前节点是否为父节点的最后一个子节点,若否,转入步骤S314,若是,转入步骤S316。\n[0117] 步骤S314,将父节点的子节点中与当前节点相邻的节点设为新的当前节点,再转入步骤S304。在Dom树中,遍历一层时,从左到右进行,当判断当前节点不为父节点的最后一个子节点,则将该子节点右边的一个子节点设为新的当前节点。\n[0118] 步骤S316,判断父节点是否为根节点,若是,转入步骤S318,若否,则转入步骤S320。\n[0119] 步骤S318,将分页字符串存放到分页队列中。\n[0120] 步骤S320,判断父节点是否有分页标识,若否,转入步骤S322,若是,转入步骤S324。\n[0121] 步骤S322,将父节点设为新的当前节点,父节点的父节点设为新的父节点,转入步骤S312。\n[0122] 步骤S324,判断父节点是否为根节点,若是,转入步骤S326,若否,转入步骤S328。\n[0123] 步骤S326,将分页字符串存放到分页队列中。\n[0124] 步骤S328,将父节点设为新的当前节点,转入步骤S330。\n[0125] 步骤S330,将分页字符串存放到分页队列中,并从所述文档对象模型树上删除当前节点及已遍历过的当前节点的相邻节点,将父节点设为新的当前节点,再转入步骤S332。\n在Dom树中,遍历一层时,从左到右进行,当判断当前节点不为根节点,则删除当前节点和当前节点的左边节点,即当前节点及已遍历过的当前节点的相邻节点。\n[0126] 步骤S332,判断当前节点是否为根节点,若是,则转入步骤S300,若否,转入步骤S334。\n[0127] 步骤S334,从该文档对象模型树中删除已遍历过的当前节点的相邻节点,然后将父节点设为新的当前节点,再转入步骤S332。\n[0128] 另外,上述移动通信终端上网页显示的方法还包括步骤:接收分页,根据分页中图片的尺寸确定预留空间的大小,并获取图片填充该预留空间。接收分页,遇到图片时根据图片的尺寸确定预留空间的大小,待整张分页排版渲染完毕后开始向图片缓存服务器批量请求图片,在得到图片后将图片内容填到该预留空间,不再重新排版,用户浏览的当前位置不会因图片排版而丢失,提高了移动通信终端上浏览器的易用性。\n[0129] 在一个实施例中,一种移动通信终端上网页显示系统,包括Web页面转换服务器,用于获取原始网页数据,并对该原始网页数据进行处理得出文本流量、图片的尺寸和流量,并根据得出的文本流量和图片流量进行分页,并发送该分页。\n[0130] 如图6所示,在一个实施例中,一种移动通信终端上网页显示系统,除了包括Web页面服务器10,还包括图片缓存服务器20、图片信息缓存服务器30和图片转换服务器40。\n其中,\n[0131] 信息服务器存储原始网页数据。Web页面转换服务器10从信息服务器中获取原始网页数据。\n[0132] 图片缓存服务器20用于存储图片及图片网页地址。图片缓存服务器20缓存图片及图片网页地址,以便方便根据提供的网页地址查找获取相应的图片。\n[0133] 图片信息缓存服务器30存储图片的尺寸和图片的流量。\n[0134] Web页面转换服务器10还用于对原始网页数据进行处理生成文档对象模型(Document Object Model,简称Dom)树,Dom树包括节点、节点的层级关系及节点属性,其中,节点包括文本节点和图片节点,从Dom树中收集图片节点、图片节点属性、文本节点和文本节点属性,并从图片节点属性中获取图片网页地址,从文本节点属性获取文本的长度,并接收移动通信终端上传的显示分辨率,将图片网页地址及移动通信终端的显示分辨率发送到图片信息缓存服务器30。其中,图片网页地址和移动通信终端的显示分辨率均为键值,键值可为字符串值或二进制值等,如字符串值abc123。\n[0135] 图片信息缓存服务器30用于存储图片的尺寸和流量,还根据获取的图片网页地址查找与该图片网页地址相对应的图片的尺寸和流量,并将获取的图片的尺寸和流量返回给Web页面转换服务器10。图片信息缓存服务器30根据图片网页地址查找相应的图片的尺寸和流量时,并非所有的图片均能找到相应的尺寸和流量,未找到的图片采用预设的默认值代替设置未找到的图片的尺寸和流量。图片信息缓存服务器30根据图片网址的键值搜索查找到所述图片的尺寸和流量,并通过协议返回给Web页面转换服务器10。另外,图片缓存服务器20和图片信息缓存服务器30按照各自不同的淘汰策略淘汰缓存记录,进行自动更新。\n[0136] Web页面转换服务器10将返回的图片的尺寸更新到图片节点属性中,Web页面转换服务器10还获取文本节点的流量,并根据图片节点的流量及文本节点的流量对原始网页数据进行分页。Web页面转换服务器10根据返回的图片尺寸更新Dom树的图片节点属性,将图片尺寸记录在图片节点属性中,该图片节点属性和分页一起发给移动通信终端。\n[0137] 图片转换服务器40用于根据图片的尺寸及移动通信终端的显示分辨率对图片节点进行处理,并将处理后的图片的尺寸和流量发送给图片信息缓存服务器30,将处理后的图片发送给图片缓存服务器20存储。图片信息缓存服务器30存储处理后的图片的尺寸和流量,即图片信息缓存服务器30更新已存储的相应的图片的尺寸和流量,进行自身存储的更新。图片转换服务器40根据移动通信终端的显示分辨率对原始图片进行压缩和格式转化处理,当原始图片的宽度小于移动通信终端的屏幕宽度时,不压缩图片;否则,按照原始图片的长宽比压缩图片,压缩后的图片宽度等于移动通信终端的屏幕宽度。\n[0138] Web页面转换服务器10还用于将分页发送到移动通信终端。\n[0139] 移动通信终端用于接收该分页,根据该分页中图片的尺寸预留预定空间,并从图片缓存服务器30中获取图片填充预定空间。移动通信终端可为手机,掌上电脑等。移动通信终端接收分页,遇到图片时根据图片的尺寸确定预留空间的大小,待整张分页排版渲染完毕后开始向图片缓存服务器批量请求图片,在得到图片后将图片内容填到该预留空间,不再重新排版,用户浏览的当前位置不会因图片排版而丢失,提高了移动通信终端上浏览器的易用性。\n[0140] 该实施例中,移动通信终端上网页显示系统还包括分页缓存(Cache)服务器用于接收Web页面转换服务器10发送的分页,并将接收的分页逐一发送给移动通信终端。Web页面转换服务器10将所有分页发送给分页缓存服务器,用户访问分页时直接从分页缓存服务器中获取。移动通信终端访问分页缓存服务器的速度与访问Web页面转换服务器10的速度快,因此提高了获取分页的速度。\n[0141] 在一个实施例中,如图7所示,Web页面转换服务器10包括分页计算模块110和分页输出模块130。其中,分页计算模块110根据图片流量及文本流量对原始网页数据进行分页。Dom树包括根节点、父节点和子节点。Dom树类似于二叉树的模型,根节点是指所有节点的起源节点,父节点是指引出至少一个节点的节点,子节点是指属于引出该节点的子节点。\n[0142] 如图8所示,分页计算模块110包括初始化子模块111、遍历子模块112、计算子模块113、第一判断子模块114、设置子模块115和分页标记子模块116。分页计算模块110的各子模块的功能通过工作过程描述如下:\n[0143] (1)初始化子模块111用于设定分页流量的第一阈值和第二阈值,且设定当前分页的流量值为零,并将文档对象模型(Dom)树中的根节点的第一个子节点设为当前节点,父节点为根节点。本实施例中,预设分页流量的第一阈值流量为标准流量STANDARD_BYTE,第二阈值为最大流量值MAX_BYTE,为第一阈值的1.2倍。该第二阈值与第一阈值的比例关系可根据需要设定。如第一阈值流量为15Kb,第二阈值流量根据移动通信终端实际可显示的流量大小,设定第二阈值可为第一阈值的1.1倍或1.3倍,为16.5Kb或19.5Kb。\n[0144] (2)遍历子模块112用于逐一遍历该Dom树中节点。\n[0145] (3)计算子模块113用于计算当前节点和当前节点属性总流量,累计到所述当前分页的流量值中。当前节点为文本节点或图片节点均计算节点流量及节点属性流量,累计到当前分页的流量值中。第一判断子模块114用于判断当前节点是否含有子节点,若是,则设置子模块115将该当前节点设为新的父节点,该新的父节点的第一个子节点设为新的当前节点,再转入过程(3);若否,则第一判断子模块114进一步判断当前节点是否为父节点的最后一个子节点,若是,转入过程(4),若否,则转入过程(5)。\n[0146] (4)分页标记子模块116根据分页流量当前值与所述第一阈值和第二阈值比较的结果,对父节点标记分页标识。具体过程是:\n[0147] (4a)第一判断子模块114判断当前分页流量值是否小于所述第一阈值,或者第一判断子模块114判断当前分页流量值是否大于等于所述第一阈值小于所述第二阈值且父节点处于所述文档对象模型树的层数大于预设层数,若是,则转入过程(5),若否,则转入过程(4b)。\n[0148] (4b)第一判断子模块114判断父节点是否为父节点的父节点的最后一个子节点,若否,则分页标记子模块116对父节点标记分页标识,且设置子模块115将分页流量当前值重新置为零,再转入过程(5),若是,则转入过程(4c)。\n[0149] (4c)第一判断子模块114进一步判断父节点的父节点是否为根节点,若是,则分页标记子模块116对父节点的父节点标记分页标识,且遍历子模块112结束遍历;若否,设置子模块115设置父节点的父节点为当前节点,父节点的父节点的父节点为新的父节点,转入过程(4b)。第一判断子模块114进一步判断父节点的父节点是否为父节点的父节点的父节点的最后一个子节点,若否,则分页标记子模块116对父节点的父节点标记分页标识,设置子模块115将分页流量当前值置零,若是,则遍历子模块112继续遍历直到遍历到一个节点,该节点不为该节点的父节点的最后一个子节点,或该节点为根节点,再由分页标记子模块116对该节点标记分页标识,设置子模块115将分页流量当前值置零。若该节点为根节点,则遍历结束。若该节点不为根节点,则转入过程(5)。\n[0150] (5)第一判断子模块114判断当前节点是否为父节点的最后一个子节点,若否,则设置子模块115将父节点的子节点中与当前节点相邻的节点设为新的当前节点,再转入过程(3),若是,则第一判断子模块114判断父节点是否为根节点,若是,则遍历子模块112结束遍历,若否,则转入过程(6)。\n[0151] (6)设置模块115将父节点设为新的当前节点,父节点的父节点设为新的父节点,再转入过程(5)。\n[0152] 如图9所示,分页输出模块130包括预设子模块131、第二判断子模块133、重设子模块135和删除子模块137。分页输出模块130输出分页的具体过程是:\n[0153] (11)预设子模块131将根节点的第一个子节点设为当前节点,根节点设为当前的父节点,分页字符串和分页队列设为空。\n[0154] (12)预设子模块131并将父节点对应的文本加入到分页字符串中。\n[0155] (13)第二判断子模块133判断当前节点是否有子节点,若有,则重设子模块135将当前节点的第一个子节点设为新的当前节点,将当前节点设为新的父节点,再转入过程(12);若没有,则预设子模块131将当前节点对应的文本加入到分页字符串中,再转入过程(14)。\n[0156] (14)第二判断子模块133判断当前节点是否有分页标识,若否,则转入过程(15),若是,则转入过程(17)。\n[0157] (15)第二判断子模块133判断当前节点是否为父节点的最后一个子节点,若否,则重设子模块135将父节点的子节点中与当前节点相邻的节点设为新的当前节点,再转入过程(13),若是,则第二判断子模块135判断父节点是否为根节点,若否,则转入过程(16),若是,则预设子模块131将分页字符串存放到分页队列中。\n[0158] (16)第二判断子模块133判断父节点是否有分页标识,若否,则重设子模块135将父节点设为新的当前节点,父节点的父节点设为新的父节点,转入过程(15),若是,则第二判断子模块133判断父节点是否为根节点,若是,则预设子模块131将分页字符串存放到分页队列中,若否,则重设子模块135将父节点设为新的当前节点,转入过程(17)。\n[0159] (17)预设子模块131将分页字符串存放到分页队列中,删除子模块137从Dom树上删除当前节点及已遍历过当前节点的相邻节点,重设子模块135将父节点设为新的当前节点,再转入过程(18);在Dom树中,遍历一层时,从左到右进行遍历,删除子模块137从Dom树上删除当前节点及当前节点左边的节点,即删除当前节点及已遍历过的当前节点的相邻节点。\n[0160] (18)第二判断子模块133判断当前节点是否为根节点,若是,则转入过程(11),若否,则删除子模块137从Dom树中删除已遍历过的当前节点的相邻节点,然后重设子模块\n135将父节点设为新的当前节点,再转入过程(18)。\n[0161] 上述移动通信终端上网页显示方法及系统,采用获取到图片的尺寸及流量,根据文本流量及图片流量精确分页,显示时,对图片先预留图片大小的空间,再获取图片填充到预留空间,形成完整的一页,不需要重新进行网页显示的排版,提高了网页浏览效率,精确分页,不会因分页过大而增加移动通信终端内存的压力,减轻了移动通信终端内存压力。\n[0162] 以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
法律信息
- 2022-12-02
专利权的转移
登记生效日: 2022.11.22
专利权人由腾讯科技(深圳)有限公司变更为深圳市雅阅科技有限公司
地址由518044 广东省深圳市福田区振兴路赛格科技园2栋东403室变更为518100 广东省深圳市宝安区新安街道海滨社区宝兴路6号海纳百川总部大厦A座14层1402
- 2014-06-04
- 2013-04-24
实质审查的生效
IPC(主分类): H04M 1/725
专利申请号: 201010523549.0
申请日: 2010.10.27
- 2012-05-16
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |