CN102693323A - 级联样式表解析方法及解析器、网页展示方法及服务器 - Google Patents

级联样式表解析方法及解析器、网页展示方法及服务器 Download PDF

Info

Publication number
CN102693323A
CN102693323A CN2012101854471A CN201210185447A CN102693323A CN 102693323 A CN102693323 A CN 102693323A CN 2012101854471 A CN2012101854471 A CN 2012101854471A CN 201210185447 A CN201210185447 A CN 201210185447A CN 102693323 A CN102693323 A CN 102693323A
Authority
CN
China
Prior art keywords
css
file
template
code
resolver
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.)
Granted
Application number
CN2012101854471A
Other languages
English (en)
Other versions
CN102693323B (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.)
Sina Technology China Co Ltd
Original Assignee
Sina Technology China 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 Sina Technology China Co Ltd filed Critical Sina Technology China Co Ltd
Priority to CN201210185447.1A priority Critical patent/CN102693323B/zh
Publication of CN102693323A publication Critical patent/CN102693323A/zh
Application granted granted Critical
Publication of CN102693323B publication Critical patent/CN102693323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例公开了级联样式表解析方法及解析器、网页展示方法及服务器,所述级联样式表解析方法包括:当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,CSS解析器接收服务器传递的所述CSS文件的CSS文件地址,获取与所述CSS文件地址一一对应的预先保存的CSS模板文件,将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码。采用本发明实施例的方法、解析器或者服务器,可以减少CSS编译器的解析次数,也提高CSS编译器的解析效率。进一步的,本发明实施例将业务逻辑代码文件和模板文件进行了分离,不会使CSS代码出现耦合性。

Description

级联样式表解析方法及解析器、网页展示方法及服务器
技术领域
本发明涉及计算机技术领域,特别是涉及级联样式表解析方法及解析器、网页展示方法及服务器。
背景技术
用户在浏览器上浏览网页的时候,一般网页会有其固有的颜色、格式等风格,而这种风格是由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代码;
服务器将所述目标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代码出现耦合性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明CSS解析方法实施例1的流程图;
图2为本发明CSS解析方法实施例1中步骤103的流程图;
图3为本发明CSS解析方法实施例2的流程图;
图4为本发明CSS解析方法实施例3的流程图;
图5为本发明网页展示方法实施例的流程图;
图6为本发明CSS解析器实施例1的结构示意图;
图7为本发明CSS解析器实施例1中解析模块603的结构示意图;
图8为本发明CSS解析器实施例2的结构示意图;
图9为本发明CSS解析器实施例3的结构示意图;
图10为本发明服务器实施例的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,示出了本发明的一种级联样式表解析方法实施例1的流程图,可以包括以下步骤:
步骤101:当用户通过浏览器向服务器提交的网页访问请求对应的CSS文件不存在时,CSS解析器接收服务器传递的所述CSS文件的CSS文件地址。
用户通过浏览器访问网页的时候会通过浏览器向服务器提交网页访问请求,而服务器就会根据网页的统一资源定位符(URL)来查找该网页对应的CSS文件,才能最终在浏览器上将网页按照CSS文件规定的网页风格展示给用户。而如果用户输入网址之后,服务器没有查找到该网页访问请求所对应的CSS文件,则服务器结合网站运行环境的重写(rewrite)机制,可以将该不存在的CSS文件的CSS文件地址发送至CSS解析器,以便触发CSS解析器的编译机制。服务器端存在文件系统,依据文件系统服务器可以确定不存在的CSS文件对应的CSS文件地址。
其中,CSS解析器可以认为是放在服务器端的一个可执行程序,它可以用各种程序语言来实现。
步骤102:CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
本步骤中涉及的CSS模板文件可以按照约定的命名规则进行设置,一个CSS文件地址对应着一个CSS模版文件,例如,可以预先设定CSS模板文件与CSS文件的后缀名不同但是名称相同,例如CSS文件为abc.css,而对应的模板文件则为abc.csstpl。则当abc.css文件不存在时,CSS解析器会找到对应的模板文件:abc.csstpl。
步骤103:CSS解析器将所述CSS模板文件解析成高级语言的可执行文件。
在CSS解析器获取到CSS模板文件之后,会将该CSS模板文件解析成高级语言的可执行文件。因为模板文件中的内容是预先由用户设置的,不是采用计算机能够识别的高级语言编写的,更接近用户使用的自然语言,所以CSS解析器会将模版文件解析成计算机能够识别的高级语言的可执行文件,例如PHP文件。
可以理解的是,因为模板文件中的内容比较接近自然语言,所以用户可以按照特定的语法,在模版文件中使用变量、函数、继承、嵌套、条件语句和/或循环语句等。并且所有高级语言的特性都能在模版文件中使用,因为模版文件会先被CSS解析器解析成一种高级语言的可执行文件。为了方便CSS解析器解析模板文件,可以为模版文件约定一种特定语法,这样就可以让CSS解析器知道哪些代码需要解析为计算机可识别的高级语言,哪些不需要进行解析。例如,可以规定以“<”开始,且以“>”结束的代码为高级语言的代码,以符号“$”开始的标识为高级语言的变量等。
在实际应用中的模版文件,如果将其需要解析为高级语言的地方都必须使用特殊标签进行标签,显然也不方便CSS解析器的解析,所以可以将模板文件分成两部分,一部分是采用原生语法编写的第一部分模板,另一部分采用简单语法编写的第二部分模板,这样就能使用户既能在CSS模板文件中直接使用变量、嵌套、条件或循环等语法,又能让用户在CSS模板文件中使用高级语言的原生语法,从而使模板文件能够实现更多功能。例如,对于采用原生语法编写的第一部分模板,用户可以在一个特殊标签中使用原生的高级语言的语法,如在以“<”开始且以“>”标签结束的范围内使用PHP语法,而对于采用简单语法编写的第二部分模板,则可以包括常用的变量、嵌套、条件或循环等,不需要特殊标签标记,CSS解析器就可以用正则表达式进行匹配。
具体的,参考图2所示,所述步骤103,具体可以包括:
步骤201:将所述第一部分模板替换为预定编号;
因为在模板文件中有两种语法,所以CSS解析器要进行两次解析。一次解析采用简单语法编写的第二部分模板,另一次解析采用原生语法编写的第一部分模板。在解析简单语法前,CSS解析器需要先将所述第一部分模板替换为预定编号,这样才能避免第一部分模板中的条件、嵌套或循环等语句被匹配。
步骤202:采用正则表达式匹配所述第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件;
CSS解析器采用正则表达式匹配采用简单语法编写的第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件。
步骤203:将所述预定编号还原为所述第一部分模板,并解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件;
CSS解析器再将预定编号还原为所述第一部分模板,并直接将第一部分模板中的高级语言部分作为与第一部分模板对应的第一部分可执行文件。
步骤204:将所述第一部分可执行文件和第二部分可执行文件组合为高级语言的可执行文件。
最终得到的第一部分可执行文件和第二部分可执行文件组合称为最终计算机可执行的高级语言的可执行文件。
步骤104:CSS解析器运行所述可执行文件以获得所述CSS文件的目标CSS代码。
CSS解析器再运行步骤103解析得到的可执行文件,从而可以生成所述CSS文件的CSS代码。
在本实施例中,在用户访问网页时,对应的CSS文件不存在时再触发CSS解析器进行解析,这样就能避免现有技术中预先需要预先编译的情况,从而可以减少CSS编译器的解析次数,也提高CSS编译器的解析效率。并且本实施例中的模板文件可以利用高级语言的特性,例如使用条件语句或循环语句等,从而能够通过CSS代码的多样性来控制用户访问网页风格的多样性,也能使CSS代码具有高级语言的特性,方便开发者开发,提高开发者的开发效率。
参见图3,示出了本发明的一种级联样式表解析方法实施例2的流程图,可以包括以下步骤:
步骤301:当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,CSS解析器接收服务器传递的所述CSS文件的CSS文件地址。
步骤302:CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
步骤301和步骤302与实施例1的实现方式可以相同,在此不再赘述。
步骤303:所述CSS模板文件包括采用原生语法编写的第一部分模板,和采用简单语法编写的第二部分模板,CSS解析器将所述第一部分模板替换为预定编号。
在CSS模板文件中,采用原生语法编写的第一部分模板中有时也会出现简单语法的格式。例如,假设一个模板文件中存在如下两个if条件语句:
Figure BDA00001733531000091
其中的第一个if语句是采用简单语法编写的,而第二个if语句是采用原生语法编写的。在解析采用简单语法编写的if语句时,如果采用原生语法编写的if语句不做处理,则原生语法里面的if语句也会被解析。因此本步骤则将第二个if语句替换为编号,假设编号为1,则替换后的模板文件如下所示:
需要说明的是,CSS解析器会先保存#1#对应的原始内容。而替换之后,后续如果再进行简单语法的解析,则只会解析第一个if语句,不会解析到已经替换之后的if语句。
步骤304:CSS解析器判断所述第二部分模板中的变量是否被赋值,如果否,则进入步骤305,如果是,进入步骤306;
本实施例与实施1的不同之处在于,本实施例中的CSS解析器在解析第二部分模板之前,需要先判断第二部分模板中的变量是否被赋值。变量是具有一定特征的标识符。有时候在不同情况下,可能会出现需要CSS文件对应的网页风格也不同的情况,例如不同用户角色浏览的网页风格不一样,具体的例如一个网站要求中国地区的用户浏览时显示红色,而美国地区的用户浏览时则显示蓝色,这就需要通过变量来实现。
然而变量的值是在编译的时候才获取的,编译后其值将会固定不变。而如果每次访问CSS文件都编译,又会浪费很多服务器资源。所以本实施例中的CSS解析器在编译变量时,会先判断这个变量是否赋值,如果未赋值,后续将不会解析该变量,而没有被解析的变量,可以在HTML(HypertextMarkup Language)中使用javascript语言每次进行动态赋值,这样既不会浪费服务器资源,也能让网页在不同情况下呈现不同的风格。具体本步骤可以采用isset()函数实现。
步骤305:采用正则表达式匹配所述第二部分模板中除了被赋值的变量之外的部分,以生成与所述第二部分模板对应的第二部分可执行文件,进入步骤307;
如果变量没有被赋值,则本步骤中的CSS编译器则采用正则表达式匹配所述第二部分模板中除了被赋值的变量之外的部分,而变量则保留,一起作为与所述第二部分模板对应的第二部分可执行文件。
步骤306:采用正则表达式匹配所述第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件;
本步骤中的变量因为已经被赋值,所以CSS解析器则直接采用正则表达式匹配整个第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件。
为了方便本领域技术人员对变量赋值的理解,下面举一个变量的例子。例如,规定以符号“$”开始的代码为变量,变量在声明时就可以进行赋值,例如:代码“$color=″red″”就定义了一个变量“color”,其值为red。而如果在变量“color”声明之后,再出现如下代码“body{color:$color,width:$width}”,则此时使用的“$color”就是已经被赋值变量了而“$width”这个变量没有被声明过,也没有被赋值过。再假设在模板文件中,有一个没有赋值的变量“$color”,那么后续在CSS解析器解析的时候可以用javascript来根据不同的情况替换$color的值。中国地区的用户浏览时,CSS解析器就会将变量“$color”替换为red,中国地区的用户浏览时,CSS解析器就会将变量“$color”为blue。
步骤307:将所述预定编号还原为所述第一部分模板,并解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件。
在本实施例中,采用简单语法编写的第二部分模板解析完之后,再将编号替换回原来的第一部分模板,从而进行第二次对于第一部分模板的解析。因为第一部分模板就是计算机可识别的代码,此时基本上就是将第一部分模板的内容作为第一部分可执行文件。
步骤308:将所述第一部分可执行文件和第二部分可执行文件组合为所述高级语言的可执行文件。
步骤309:CSS解析器运行所述可执行文件以获得所述CSS文件的目标CSS代码。
本实施例中,不仅CSS代码完全具有高级语言的灵活方便性,并且因为使用了变量从而实现了半编译机制,即是在有未赋值的变量存在时,CSS编译时只编译一部分,而未赋值的变量则是用户浏览网页时,由浏览器的javascript进行实时替换,这样不会浪费服务器资源,也能实现不同情况下用户可以浏览到不同的网页风格样式。
参见图4,示出了本发明的一种级联样式表解析方法实施例3的流程图,可以包括以下步骤:
步骤401:在所述模板文件中预先添加开关常量,所述开关常量用于表示是否开启调试模式。
在实际应用中,如果用户每次访问网页时对于同一个CSS文件,如果不进行保存的话,每次都需要CSS编译器进行编译,这样的话就会浪费资源。而如果在用户第一次访问不存在的CSS文件时就先由得到的目标代码生成CSS文件进行保存,这样用户以后再访问该CSS文件,就可以不需要再通过CSS编译器编译,而直接将该CSS文件提供给浏览器即可。为了实现上述目的,本实施例与实施例2的不同之处在于提供了一种调试模式,当用户开启调试模式时,CSS解析器每次编译后只会向浏览器输出编译后的CSS代码,而不会生成CSS文件,而如果没有开启调试模式,则需要在编译得到CSS代码之后再生成CSS文件进行保存。
具体的,该调试模式可以通过加上一个开关判断来实现,该开关是一个常量标记,CSS编译器在生成CSS文件前可以先判断这个常量的值,并根据结果来判断是否生成CSS文件。
步骤402:当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,CSS解析器接收服务器传递的所述CSS文件的CSS文件地址。
步骤403:CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
步骤404:判断所述CSS模板文件是否存在与之对应的业务逻辑代码文件,如果是,则进入步骤405;
本实施例与实施例2的不同之处还在于,在解析CSS模板文件之前,CSS解析器先判断所述CSS模板文件是否存在与之对应的业务逻辑代码文件,该业务逻辑代码文件中的业务逻辑代码可以是连接数据库或者更为复杂的高级语言的操作。因为这类业务逻辑代码较为复杂,因此将此类代码直接写到CSS模版文件中,容易出现耦合,而且会使代码的可读性差。
因此本实施例将业务逻辑代码独立为一个高级语言的可执行文件(业务逻辑代码文件),业务逻辑代码可以完全由一种高级语言编写。CSS解析器在进行编译时,会先检查模板文件是否存在对应的业务逻辑代码文件。需要说明的是,因为业务逻辑代码文件与模板文件也是一一对应的关系,因此假设CSS文件是abc.css,而模版文件是:abc.csstpl,那么业务逻辑代码文件可以是abc.csslogic。
步骤405:加载所述业务逻辑代码文件以获得所述业务逻辑代码文件中的业务逻辑代码。
在业务逻辑代码文件存在的情况下,CSS解析器先加载业务逻辑代码文件,再解析CSS模版文件,而加载业务逻辑代码文件的过程即是运行业务逻辑代码,就可能会获得CSS模版文件中某些变量的值,或者定位连接的数据库等。
步骤406:依据所述业务逻辑代码将所述CSS模板文件解析成高级语言的可执行文件。
此时再依据加载后的业务逻辑代码将所述CSS模板文件解析成高级语言的可执行文件。
步骤407:运行所述可执行文件以获得所述CSS文件的目标CSS代码。
步骤408:判断所述开关常量是否表示开启调试模式,如果否,则进入步骤409。
比如定义了开关为“true”的时候,为开启调试,则对应的代码如下:
define(“debug”,true);//定义开关为true,及开启调试
则本步骤即是判断开关是否为true,如果不是,则不再生成CSS文件。则对应的代码如下:
If(!debug){//如果不是调试模式
...省略生成CSS文件的代码
}
需要说明的是,如果调试模式的开关开启,则每次编译后不会生成CSS文件,即是不再执行步骤409。
步骤409:将所述目标CSS代码生成对应的目标CSS文件,并保存所述生成的目标CSS文件。
再将目标CSS代码生成目标CSS文件,同时在服务器端保存该生成的目标CSS文件,那么以后再次访问时,就可以由服务器端直接向浏览器返回目标CSS文件,而无需CSS编译器再触发编译。
在本发明实施例中,将业务逻辑代码文件和模板文件进行分离,可以减少业务逻辑代码和CSS代码的耦合性,同时本申请还可以通过开关调试,而无需CSS编译器每次都需要编译CSS代码,这样也提高了服务器端向浏览器提供CSS文件的效率。
另外,本发明在实施时,也可以采用报错机制,例如,用户在编写CSS模版文件时,容易出现语法错误,如果有语法错误,可以利用记录日志文件的形式,将错误信息写入日志文件,也可以向浏览器发送HTTP headers信息,浏览器端通过插件接收到错误信息后,可以显示给用户。
参见图5,示出了本发明的一种网页展示方法的实施例的流程图,本实施例应用于包括CSS解析器的服务器上,该方法可以包括:
步骤501:服务器接收用户通过客户端浏览器提交的网页访问请求。
步骤502:服务器判断与所述网页访问请求对应的级联样式表CSS文件是否存在,如果否,则进入步骤503。
在本实施例中,服务器在接收到用户通过客户端浏览器提交的网页访问请求之后,先判断与所述网页访问请求对应的CSS文件是否存在,如果存在的话,就直接将CSS文件返回给浏览器,如果不存在的话,则进入步骤503触发CSS解析器的编译过程。
步骤503:CSS解析器接收服务器传递的所述CSS文件的CSS文件地址。
步骤504:CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
步骤505:CSS解析器将所述CSS模板文件解析成高级语言的可执行文件。
步骤506:CSS解析器运行所述可执行文件以获得所述CSS文件的目标CSS代码。
因为CSS解析器的编译过程已经通过上述实施例1、实施例2和实施例3进行详细说明,在此不再赘述。
步骤507:服务器将所述目标CSS代码发送至所述客户端浏览器,所述客户端浏览器解析所述目标CSS代码,以便在所述客户端上按照所述目标CSS代码对应的网页风格展示目标网页。
服务器再将CSS解析器在步骤506中生成的目标CSS代码发送至所述客户端浏览器,所述客户端浏览器解析所述目标CSS代码,以便在所述客户端上按照所述目标CSS代码对应的网页风格展示目标网页。
在本实施例中,在用户所访问的CSS文件不存在的情况下,触发CSS编译器的自发编译,从而实现在客户端上按照编译后的CSS代码对应的网页风格来向用户展示目标网页。
通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
相应于上面的方法实施例,本发明实施例还提供一种CSS解析器。参见图6,示出了一种CSS解析器实施例1的结构示意图,可以包括:
接收文件地址模块601,用于当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,接收服务器传递的所述CSS文件的CSS文件地址。
获取模块602,用于获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
解析模块603,用于将所述CSS模板文件解析成高级语言的可执行文件。
所述CSS模板文件包括采用原生语法编写的第一部分模板,和采用简单语法编写的第二部分模板,则所述解析模块603具体包括:
替换子模块701,用于将所述第一部分模板替换为预定编号;
匹配子模块702,用于采用正则表达式匹配所述第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件;
还原子模块703,用于将所述预定编号还原为所述第一部分模板;
解析子模块704,用于解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件;
生成代码子模块705,用于将所述第一部分可执行文件和第二部分可执行文件组合为所述目标CSS代码。
运行模块604,用于运行所述可执行文件以获得所述CSS文件的目标CSS代码。
在本实施例中,在用户访问网页时,对应的CSS文件不存在时再触发CSS解析器进行解析,这样就能避免现有技术中预先需要编译的情况,从而可以减少CSS编译器的解析次数,也提高CSS编译器的解析效率。并且本实施例中的模板文件可以利用高级语言的特性,例如使用条件语句或循环语句等,从而能够通过CSS代码的多样性来控制用户访问网页风格的多样性。
参见图8,示出了本发明的一种CSS解析器实施例2的结构示意图,本实施例具体可以包括:
接收文件地址模块601,用于当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,接收服务器传递的所述CSS文件的CSS文件地址。
获取模块602,用于获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
在本实施例中的解析模块603具体可以包括:
替换子模块701,用于将所述第一部分模板替换为预定编号;
第一判断子模块801,用于判断所述第二部分模板中的变量是否被赋值;
匹配子模块702,具体用于在所述第一判断子模块的结果为否的情况下,采用正则表达式匹配所述第二部分模板中除了被赋值的变量之外的部分。
还原子模块703,用于将所述预定编号还原为所述第一部分模板。
解析子模块704,应用解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件。
生成代码子模块705,用于将所述第一部分可执行文件和第二部分可执行文件组合为所述目标CSS代码。
运行模块604,用于运行所述可执行文件以获得所述CSS文件的目标CSS代码。
本实施例中,不仅CSS代码完全具有高级语言的灵活方便性,并且因为使用了变量从而实现了半编译机制,即是在有未赋值的变量存在时,CSS编译时只编译一部分,而未赋值的变量则是用户浏览网页时,由浏览器的javascript进行实时替换,这样不会浪费服务器资源,也能实现不同情况下用户可以浏览到不同的网页风格样式。
参见图9,示出了一种CSS解析器实施例3的结构示意图,在本实施例中,在所述模板文件中预先添加开关常量,所述开关常量用于表示是否开启调试模式的情况下,本实施例可以包括:
接收文件地址模块601,用于当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,接收服务器传递的所述CSS文件的CSS文件地址。
获取模块602,用于获取与所述CSS文件地址一一对应的预先保存的CSS模板文件。
第一判断模块901,用于判断所述CSS模板文件是否存在与之对应的业务逻辑代码文件。
加载模块902,用于在所述第一判断模块的结果为是的情况下,加载所述业务逻辑代码文件以获得所述业务逻辑代码文件中的业务逻辑代码。
解析模块603,用于依据所述业务逻辑代码将所述CSS模板文件解析成高级语言的可执行文件。
运行模块604,用于运行所述可执行文件以获得所述CSS文件的目标CSS代码。
第二判断模块903,用于判断开关常量是否表示开启调试模式。
生成文件模块904,用于在所述第二判断模块的结果为否的情况下,将所述目标CSS代码生成对应的目标CSS文件。
保存模块905,用于保存所述生成的目标CSS文件。
在本发明实施例中,将业务逻辑代码文件和模板文件进行分离,可以减少业务逻辑代码和CSS代码的耦合性,同时本申请还可以通过开关调试,而无需CSS编译器每次都需要编译CSS代码,这样也提高了服务器端向浏览器提供CSS文件的效率。
参见图10,示出了本发明的一种服务器实施例的结构示意图,该服务器具体可以包括:接收请求模块1001、第三判断模块1002、CSS解析器1003和发送模块1004;其中,
所述接收请求模块1001,用于接收用户通过客户端浏览器提交的网页访问请求。
所述第三判断模块1002,用于判断与所述网页访问请求对应的级联样式表CSS文件是否存在。
所述CSS解析器1003用于在所述判断模块的结果为否的情况下,接收服务器传递的所述CSS文件的CSS文件地址;获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码。
所述发送模块1004用于将所述目标CSS代码发送至所述客户端浏览器,所述客户端浏览器解析所述目标CSS代码,以便在所述客户端上按照所述目标CSS代码对应的网页风格展示目标网页。
在本实施例中,在用户所访问的CSS文件不存在的情况下,触发CSS编译器的自发编译,从而实现在客户端上按照编译后的CSS代码对应的网页风格来向用户展示目标网页。
可以理解的是,本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于解析器和服务器实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的解析器和服务器实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种级联样式表解析方法,其特征在于,包括:
当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,CSS解析器接收服务器传递的所述CSS文件的CSS文件地址;
CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;
CSS解析器将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码。
2.根据权利要求1所述的方法,其特征在于,所述CSS模板文件包括采用原生语法编写的第一部分模板,和采用简单语法编写的第二部分模板,则所述将所述CSS模板文件解析成高级语言的可执行文件,具体包括:
将所述第一部分模板替换为预定编号;
采用正则表达式匹配所述第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件;
将所述预定编号还原为所述第一部分模板,并解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件;
将所述第一部分可执行文件和第二部分可执行文件组合为所述高级语言的可执行文件。
3.根据权利要求2所述的方法,其特征在于,所述采用正则表达式匹配所述第二部分模板之前,还包括:
判断所述第二部分模板中的变量是否被赋值,如果否,则所述采用正则表达式匹配所述第二部分模板,具体为:
采用正则表达式匹配所述第二部分模板中除了被赋值的变量之外的部分。
4.根据权利要求1所述的方法,其特征在于,在所述将所述CSS模板文件解析成高级语言的可执行文件之前,所述方法还包括:
判断所述CSS模板文件是否存在与之对应的业务逻辑代码文件,如果是,则加载所述业务逻辑代码文件以获得所述业务逻辑代码文件中的业务逻辑代码;
则所述将所述CSS模板文件解析成高级语言的可执行文件,具体为:
依据所述业务逻辑代码将所述CSS模板文件解析成高级语言的可执行文件。
5.根据权利要求1所述的方法,其特征在于,在所述CSS模板文件中预先添加开关常量,所述开关常量用于表示是否开启调试模式,则所述方法还包括:
判断所述开关常量是否表示开启调试模式,如果否,则将所述目标CSS代码生成对应的目标CSS文件,并保存所述生成的目标CSS文件。
6.一种网页展示方法,其特征在于,应用于包括CSS解析器的服务器上,该方法包括:
服务器接收用户通过客户端浏览器提交的网页访问请求;
服务器判断与所述网页访问请求对应的级联样式表CSS文件是否存在,如果否,则CSS解析器接收服务器传递的所述CSS文件的CSS文件地址;
CSS解析器获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;
CSS解析器将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码;
服务器将所述目标CSS代码发送至所述客户端浏览器,所述客户端浏览器解析所述目标CSS代码,以便在所述客户端上按照所述目标CSS代码对应的网页风格展示目标网页。
7.一种级联样式表解析器,其特征在于,包括:
接收文件地址模块,用于当用户通过浏览器向服务器提交的网页访问请求对应的级联样式表CSS文件不存在时,接收服务器传递的所述CSS文件的CSS文件地址;
获取模块,用于获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;
解析模块,用于将所述CSS模板文件解析成高级语言的可执行文件;
运行模块,用于运行所述可执行文件以获得所述CSS文件的目标CSS代码。
8.根据权要求7所述的解析器,其特征在于,所述CSS模板文件包括采用原生语法编写的第一部分模板,和采用简单语法编写的第二部分模板,则所述解析模块具体包括:
替换子模块,用于将所述第一部分模板替换为预定编号;
匹配子模块,用于采用正则表达式匹配所述第二部分模板,以生成与所述第二部分模板对应的第二部分可执行文件;
还原子模块,用于将所述预定编号还原为所述第一部分模板;
解析子模块,用于解析所述第一部分模板以生成与所述第一部分模板对应的第一部分可执行文件;
生成代码子模块,用于将所述第一部分可执行文件和第二部分可执行文件组合为所述目标CSS代码。
9.根据权利要求8所述的解析器,其特征在于,所述解析模块还包括:
第一判断子模块,用于判断所述第二部分模板中的变量是否被赋值;
所述匹配子模块,具体用于在所述第一判断子模块的结果为否的情况下,采用正则表达式匹配所述第二部分模板中除了被赋值的变量之外的部分。
10.根据权利要求7所述的解析器,其特征在于,还包括:
第一判断模块,用于判断所述CSS模板文件是否存在与之对应的业务逻辑代码文件;
加载模块,用于在所述第一判断模块的结果为是的情况下,加载所述业务逻辑代码文件以获得所述业务逻辑代码文件中的业务逻辑代码;
则所述解析模块具体用于:依据所述业务逻辑代码将所述CSS模板文件解析成高级语言的可执行文件。
11.根据权利要求7所述的解析器,其特征在于,在所述CSS模板文件中预先添加开关常量,所述开关常量用于表示是否开启调试模式的情况下,则所述解析器还包括:
第二判断模块,用于判断所述开关常量是否表示开启调试模式;
生成文件模块,用于在所述第二判断模块的结果为否的情况下,将所述目标CSS代码生成对应的目标CSS文件;
保存模块,用于保存所述生成的目标CSS文件。
12.一种服务器,其特征在于,所述服务器包括接收请求模块、第三判断模块、CSS解析器和发送模块;其中,
所述接收请求模块,用于接收用户通过客户端浏览器提交的网页访问请求;
所述第三判断模块,用于判断与所述网页访问请求对应的级联样式表CSS文件是否存在;
所述CSS解析器用于在所述判断模块的结果为否的情况下,接收服务器传递的所述CSS文件的CSS文件地址;获取与所述CSS文件地址一一对应的预先保存的CSS模板文件;将所述CSS模板文件解析成高级语言的可执行文件,并运行所述可执行文件以获得所述CSS文件的目标CSS代码;
所述发送模块用于将所述目标CSS代码发送至所述客户端浏览器,所述客户端浏览器解析所述目标CSS代码,以便在所述客户端上按照所述目标CSS代码对应的网页风格展示目标网页。
CN201210185447.1A 2012-06-06 2012-06-06 级联样式表解析方法及解析器、网页展示方法及服务器 Active CN102693323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210185447.1A CN102693323B (zh) 2012-06-06 2012-06-06 级联样式表解析方法及解析器、网页展示方法及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210185447.1A CN102693323B (zh) 2012-06-06 2012-06-06 级联样式表解析方法及解析器、网页展示方法及服务器

Publications (2)

Publication Number Publication Date
CN102693323A true CN102693323A (zh) 2012-09-26
CN102693323B CN102693323B (zh) 2015-01-28

Family

ID=46858756

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210185447.1A Active CN102693323B (zh) 2012-06-06 2012-06-06 级联样式表解析方法及解析器、网页展示方法及服务器

Country Status (1)

Country Link
CN (1) CN102693323B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258055A (zh) * 2013-05-31 2013-08-21 北京奇虎科技有限公司 一种文件下载设备和方法
WO2015136447A1 (en) * 2014-03-11 2015-09-17 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for dynamic runtime generation of customized applications
CN105094938A (zh) * 2015-06-30 2015-11-25 小米科技有限责任公司 生成级联样式表代码的方法及装置
US9432734B2 (en) 2014-09-10 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Multi-person and multi-device content personalization
CN109032584A (zh) * 2018-07-27 2018-12-18 郑州云海信息技术有限公司 一种层叠样式表的生成方法、装置、设备及介质
CN109299448A (zh) * 2018-09-12 2019-02-01 武汉轻工大学 简历智能填写方法、系统、服务器及存储介质
CN110083845A (zh) * 2019-04-25 2019-08-02 数译(成都)信息技术有限公司 网页翻译方法及系统
CN110472125A (zh) * 2019-08-23 2019-11-19 厦门商集网络科技有限责任公司 一种基于网络爬虫的多级页面的级联爬取方法和设备
CN110618850A (zh) * 2019-08-30 2019-12-27 北京浪潮数据技术有限公司 一种ui界面加载方法、系统及相关装置
US10963539B2 (en) 2014-09-10 2021-03-30 Mk Systems Usa Inc. Interactive web application editor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006013161A1 (de) * 2004-07-30 2006-02-09 Siemens Aktiengesellschaft Verfahren, programm und system zur dynamischen, template basierten generierung von internetseiten
CN101446955A (zh) * 2008-12-11 2009-06-03 深圳市茁壮网络技术有限公司 一种浏览器的实现方法、装置和系统
CN102325188A (zh) * 2011-09-16 2012-01-18 北京新媒传信科技有限公司 在移动终端上实现网页浏览的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006013161A1 (de) * 2004-07-30 2006-02-09 Siemens Aktiengesellschaft Verfahren, programm und system zur dynamischen, template basierten generierung von internetseiten
CN101446955A (zh) * 2008-12-11 2009-06-03 深圳市茁壮网络技术有限公司 一种浏览器的实现方法、装置和系统
CN102325188A (zh) * 2011-09-16 2012-01-18 北京新媒传信科技有限公司 在移动终端上实现网页浏览的方法和系统

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103258055B (zh) * 2013-05-31 2016-05-11 北京奇虎科技有限公司 一种文件下载设备和方法
CN103258055A (zh) * 2013-05-31 2013-08-21 北京奇虎科技有限公司 一种文件下载设备和方法
WO2015136447A1 (en) * 2014-03-11 2015-09-17 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for dynamic runtime generation of customized applications
US9189207B2 (en) 2014-03-11 2015-11-17 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for dynamic runtime generation of customized applications
US10963539B2 (en) 2014-09-10 2021-03-30 Mk Systems Usa Inc. Interactive web application editor
US9432734B2 (en) 2014-09-10 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Multi-person and multi-device content personalization
US11693915B2 (en) 2014-09-10 2023-07-04 Mk Systems Usa Inc. Interactive web application editor
CN105094938A (zh) * 2015-06-30 2015-11-25 小米科技有限责任公司 生成级联样式表代码的方法及装置
CN109032584A (zh) * 2018-07-27 2018-12-18 郑州云海信息技术有限公司 一种层叠样式表的生成方法、装置、设备及介质
CN109299448B (zh) * 2018-09-12 2023-06-30 武汉轻工大学 简历智能填写方法、系统、服务器及存储介质
CN109299448A (zh) * 2018-09-12 2019-02-01 武汉轻工大学 简历智能填写方法、系统、服务器及存储介质
CN110083845A (zh) * 2019-04-25 2019-08-02 数译(成都)信息技术有限公司 网页翻译方法及系统
CN110083845B (zh) * 2019-04-25 2023-06-16 四川语言桥信息技术有限公司 网页翻译方法及系统
CN110472125A (zh) * 2019-08-23 2019-11-19 厦门商集网络科技有限责任公司 一种基于网络爬虫的多级页面的级联爬取方法和设备
CN110618850A (zh) * 2019-08-30 2019-12-27 北京浪潮数据技术有限公司 一种ui界面加载方法、系统及相关装置

Also Published As

Publication number Publication date
CN102693323B (zh) 2015-01-28

Similar Documents

Publication Publication Date Title
CN102693323B (zh) 级联样式表解析方法及解析器、网页展示方法及服务器
CN102508710B (zh) 一种ie6内核与新型ie内核的切换方法和系统
CN106462406B (zh) 客户端侧代码的中间表示的交互式查看器
CN104185845A (zh) 用于提供网页的二进制表示的系统和方法
EP2827244A1 (en) Extension mechanism for scripting language compiler
CN104731589A (zh) 用户界面的自动生成方法及自动生成装置
CN108920496B (zh) 一种渲染方法及装置
CN103324470A (zh) 一种Web系统生成的方法和装置
CN104360937A (zh) 一种智能参数校验装置
CN101799766B (zh) Widget引擎中使用第三方引擎解析脚本文件的方法和装置
US20220237254A1 (en) Page displaying method and device, computer-readable storage medium and electronic device
CN103412754A (zh) 动态语言代码执行方法和装置
CN104134039A (zh) 病毒查杀方法、客户端、服务器以及病毒查杀系统
El-Kassas et al. ICPMD: Integrated cross-platform mobile development solution
CN108399086A (zh) 一种微件管理方法、服务器和计算机可读存储介质
CN104750463A (zh) 一种插件开发方法及系统
CN105511935A (zh) 资源索引值的获取方法及装置
Juričić Detecting source code similarity using low-level languages
CN101006442A (zh) 入口小程序在客户端平台上的显示和安装
CN116166907B (zh) 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置
Bajaj et al. Dompletion: DOM-aware JavaScript code completion
CN103617079A (zh) 一种ie6内核与新型ie内核的切换方法和系统
CN116775034A (zh) 内核观测程序的构建方法、装置及设备
Burnay et al. Statically checking REST API consumers
CN113626016A (zh) 一种基于Vue+Element UI+Koa2的前后端分离的可重用组件

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230406

Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193

Patentee after: Sina Technology (China) Co.,Ltd.

Address before: 100080, International Building, No. 58 West Fourth Ring Road, Haidian District, Beijing, 20 floor

Patentee before: Sina.com Technology (China) Co.,Ltd.