[发明专利]级联样式表解析方法及解析器、网页展示方法及服务器有效
申请号: | 201210185447.1 | 申请日: | 2012-06-06 |
公开(公告)号: | CN102693323A | 公开(公告)日: | 2012-09-26 |
发明(设计)人: | 罗飞 | 申请(专利权)人: | 新浪网技术(中国)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 级联 样式 表解 方法 解析 网页 展示 服务器 | ||
技术领域
本发明涉及计算机技术领域,特别是涉及级联样式表解析方法及解析器、网页展示方法及服务器。
背景技术
用户在浏览器上浏览网页的时候,一般网页会有其固有的颜色、格式等风格,而这种风格是由CSS(Cascading Style Sheet,级联样式表)确定的。CSS是用来进行网页风格设计的,它是一种比较低级的页面前端语言,它没有变量、函数、嵌套、继承等高级语言的特性。用户通过浏览器向服务器请求网页时,服务器会将用户访问的网页对应的CSS文件返回给浏览器进行解析,以使浏览器上展开的网页满足该CSS文件确定的网页风格。
现有技术中一些CSS解析器,可以采用“替换”的方式,在进行CSS解析时,允许用户在CSS文件的CSS代码中使用一些特殊字符串,但是这种特殊字符串需要在用户浏览网页之前就预先编译代码,因为需要在编译时将特殊字符串替换为相应的值。
发明人在研究过程中发现,现有技术因为只能采用“替换”的方式,导致CSS代码的灵活性依然比较差,例如不能在CSS代码中使用条件语句、循环语句等,而且现有技术在运行CSS代码之前需要事先进行编译,就不能实现在用户访问网页时,再触发CSS编译器进行编译,这就造成了CSS编译器的解析效率较低的问题,并且进一步的,服务器在向用户展示网页的时候,也会因为展示过程中的编译过程而影响效率。
发明内容
本发明所要解决的技术问题是,提供一种级联样式表解析方法及解析器、一种网页展示方法及服务器,以解决现有技术中CSS解析器需要预先编译导致的解析效率较低的问题,以及服务器展示网页的效率低的技术问题。
为解决上述技术问题,本发明实施例提供了一种级联样式表解析方法,包括:
当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,CSS解析器接收服务器传递的所述CSS文件的CSS文件地址;
CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;
CSS解析器将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码。
优选的,所述CSS模板文件包括采用原生语法编写的第一部分模板,和采用简单语法编写的第二部分模板,则所述将所述CSS模板文件解析成高级语言的可执行文件,具体包括:
将所述第一部分模板替换为预定编号;
采用正则表达式匹配所述第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件;
将所述预定编号还原为所述第一部分模板,并解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件;
将所述第一部分可执行文件和第二部分可执行文件组合为所述高级语言的可执行文件。
优选的,所述采用正则表达式匹配所述第二部分模板之前,还包括:
判断所述第二部分模板中的变量是否被赋值,如果否,则所述采用正则表达式匹配所述第二部分模板,具体为:
采用正则表达式匹配所述第二部分模板中除了被赋值的变量之外的部分。
优选的,在所述将所述CSS模板文件解析成高级语言的可执行文件之前,所述方法还包括:
判断所述CSS模板文件是否存在与之对应的业务逻辑代码文件,如果是,则加载所述业务逻辑代码文件以获得所述业务逻辑代码文件中的业务逻辑代码;
则所述将所述CSS模板文件解析成高级语言的可执行文件,具体为:
依据所述业务逻辑代码将所述CSS模板文件解析成高级语言的可执行文件。
优选的,在所述CSS模板文件中预先添加开关常量,所述开关常量用于表示是否开启调试模式,则所述方法还包括:
判断所述开关常量是否表示开启调试模式,如果否,则将所述目标CSS代码生成对应的目标CSS文件,并保存所述生成的目标CSS文件。
一种网页展示方法,应用于包括CSS解析器的服务器上,该方法包括:
服务器接收用户通过客户端浏览器提交的网页访问请求;
服务器判断与所述网页访问请求对应的级联样式表CSS文件是否存在,如果否,则CSS解析器接收服务器传递的所述CSS文件的CSS文件地址;
CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;
CSS解析器将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新浪网技术(中国)有限公司,未经新浪网技术(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210185447.1/2.html,转载请声明来源钻瓜专利网。