欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于css沖突的自動(dòng)檢測(cè)的方法和系統(tǒng)的制作方法

文檔序號(hào):6504899閱讀:211來(lái)源:國(guó)知局
用于css沖突的自動(dòng)檢測(cè)的方法和系統(tǒng)的制作方法【專(zhuān)利摘要】本發(fā)明涉及用于CSS沖突的自動(dòng)檢測(cè)的方法和系統(tǒng)。提供了一種用于CSS沖突的自動(dòng)檢測(cè)的方法,該方法包括:接收小部件的開(kāi)發(fā)者定義的至少一個(gè)用戶界面約束和至少一個(gè)第一CSS規(guī)則、以及小部件的用戶自定義的至少一個(gè)第二CSS規(guī)則,所述用戶界面約束用于約束所述小部件的用戶界面;運(yùn)行包含所述小部件的頁(yè)面;基于所述頁(yè)面的運(yùn)行的結(jié)果,針對(duì)每個(gè)用戶界面約束進(jìn)行自動(dòng)驗(yàn)證;以及響應(yīng)于所述驗(yàn)證得出一個(gè)用戶界面約束被違反,在由覆蓋了第一CSS規(guī)則的第二CSS規(guī)則組成的第一集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二CSS規(guī)則?!緦?zhuān)利說(shuō)明】用于css沖突的自動(dòng)檢測(cè)的方法和系統(tǒng)【
技術(shù)領(lǐng)域
】[0001]本發(fā)明涉及層疊樣式表,更具體地說(shuō),本發(fā)明涉及一種用于CSS沖突的自動(dòng)檢測(cè)的方法和系統(tǒng)?!?br>背景技術(shù)
】[0002]層疊樣式表(CascadingStyleSheet,CSS)是一種用來(lái)表現(xiàn)HTML或XML等文件樣式的計(jì)算機(jī)語(yǔ)言。CSS是目前能夠真正做到網(wǎng)頁(yè)表現(xiàn)與內(nèi)容分離的一種樣式設(shè)計(jì)語(yǔ)言,其中用HTML或XML等規(guī)定內(nèi)容并且用CSS規(guī)定該內(nèi)容的網(wǎng)頁(yè)中的表現(xiàn)形式。相對(duì)于傳統(tǒng)HTML的表現(xiàn)而言,CSS能夠?qū)W(wǎng)頁(yè)中的對(duì)象的位置排版進(jìn)行像素級(jí)的精確控制。[0003]層疊樣式表定義如何顯示HTML或XML的元素,就像HTML的字體標(biāo)簽和顏色屬性所起的作用那樣。樣式通常保存在外部的.CSS文件中(例如,外部樣式表)。通過(guò)僅僅編輯一個(gè)簡(jiǎn)單的CSS文檔,外部樣式表使得能夠同時(shí)改變站點(diǎn)中所有頁(yè)面的布局和外觀。由于允許同時(shí)控制多重頁(yè)面的樣式和布局,層疊樣式表可以稱得上WEB設(shè)計(jì)領(lǐng)域的一個(gè)突破。作為網(wǎng)站開(kāi)發(fā)者,能夠?yàn)槊總€(gè)HTML元素定義樣式,并將之應(yīng)用于希望的任意多的頁(yè)面中。如需進(jìn)行全局的更新,只需簡(jiǎn)單地改變樣式,然后網(wǎng)站中的所有元素均會(huì)自動(dòng)地更新。[0004]層疊樣式表允許以多種方式規(guī)定樣式信息。樣式可以規(guī)定在單個(gè)的HTML元素中,在HTML頁(yè)的頭元素中,或在一個(gè)外部的CSS文件中。甚至可以在同一個(gè)HTML文檔內(nèi)部引用多個(gè)外部樣式表。一般而言,所有的樣式會(huì)按照下面的優(yōu)先順序?qū)盈B于一個(gè)新的虛擬樣式表中(優(yōu)先級(jí)逐漸升高):瀏覽器缺省設(shè)置、外部樣式表、內(nèi)部樣式表(位于<head>標(biāo)簽內(nèi)部)、內(nèi)聯(lián)樣式(在HTML元素內(nèi)部)。這里,內(nèi)聯(lián)樣式(在HTML元素內(nèi)部)擁有最高的優(yōu)先級(jí),這意味著當(dāng)同時(shí)存在時(shí)它將優(yōu)先于以下的樣式聲明:<head>標(biāo)簽中的樣式聲明,夕卜部樣式表中的樣式聲明,或者瀏覽器中的樣式聲明(缺省值)。[0005]在HTML頁(yè)面中,小部件(widget)的外觀由與小部件庫(kù)一起交付的一組CSS來(lái)定義和調(diào)整。然而,當(dāng)把一個(gè)小部件放入存在更高優(yōu)先級(jí)的CSS的復(fù)雜頁(yè)面環(huán)境中時(shí),該小部件的CSS可能被意外地覆蓋(override),從而小部件的原本外觀被破壞,有時(shí)候甚至功能也受到破壞。在本文中,這種原本的CSS被意外覆蓋的情況被稱為CSS沖突。[0006]出現(xiàn)CSS沖突是由于以下原因:1)應(yīng)用或頁(yè)面開(kāi)發(fā)者與小部件開(kāi)發(fā)者通常是不同的人。頁(yè)面開(kāi)發(fā)者沒(méi)有完全理解小部件的內(nèi)部邏輯,從而不能夠避免覆蓋小部件的CSS;以及2)HTML具有動(dòng)態(tài)性質(zhì),CSS覆蓋在運(yùn)行時(shí)發(fā)生,所以難以在編寫(xiě)時(shí)檢測(cè)到該覆蓋。[0007]在現(xiàn)有技術(shù)中,當(dāng)在運(yùn)行時(shí)小部件的外觀被破壞后,開(kāi)發(fā)者才會(huì)意識(shí)到存在CSS沖突,并且需要人工排查代碼來(lái)找到引起沖突的CSS規(guī)則從而消除CSS沖突。當(dāng)頁(yè)面環(huán)境復(fù)雜時(shí),這是非常費(fèi)時(shí)費(fèi)力的工作?!?br/>發(fā)明內(nèi)容】[0008]為了解決上述的技術(shù)問(wèn)題,期望提供一種方法和系統(tǒng),其能夠自動(dòng)地檢測(cè)小部件的CSS沖突,并且報(bào)告導(dǎo)致CSS沖突的CSS規(guī)則和該CSS規(guī)則所影響的小部件特性。[0009]根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于css沖突的自動(dòng)檢測(cè)的方法,該方法包括:接收小部件的開(kāi)發(fā)者定義的至少一個(gè)用戶界面約束和至少一個(gè)第一CSS規(guī)則、以及小部件的用戶自定義的至少一個(gè)第二CSS規(guī)則,所述用戶界面約束用于約束所述小部件的用戶界面;運(yùn)行包含所述小部件的頁(yè)面;基于所述頁(yè)面的運(yùn)行的結(jié)果,針對(duì)每個(gè)用戶界面約束進(jìn)行自動(dòng)驗(yàn)證;以及響應(yīng)于所述驗(yàn)證得出一個(gè)用戶界面約束被違反,在由覆蓋了第一CSS規(guī)則的第二CSS規(guī)則組成的第一集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二CSS規(guī)則。[0010]根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于css沖突的自動(dòng)檢測(cè)的系統(tǒng),該系統(tǒng)包括:接收裝置,被配置為接收小部件的開(kāi)發(fā)者定義的至少一個(gè)用戶界面約束和至少一個(gè)第一CSS規(guī)則、以及小部件的用戶自定義的至少一個(gè)第二CSS規(guī)則,所述用戶界面約束用于約束所述小部件的用戶界面;運(yùn)行裝置,被配置為運(yùn)行包含所述小部件的頁(yè)面;驗(yàn)證裝置,被配置為基于所述頁(yè)面的運(yùn)行的結(jié)果,針對(duì)每個(gè)用戶界面約束進(jìn)行自動(dòng)驗(yàn)證;以及沖突源檢測(cè)裝置,響應(yīng)于所述驗(yàn)證得出一個(gè)用戶界面約束被違反,在由覆蓋了第一CSS規(guī)則的第二css規(guī)則組成的第一集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二css規(guī)則。[0011]采用本發(fā)明的CSS沖突的自動(dòng)檢測(cè)方法和系統(tǒng),能夠自動(dòng)地檢測(cè)小部件的css沖突,向小部件的用戶提供了極大的便利。通過(guò)報(bào)告導(dǎo)致CSS沖突的CSS規(guī)則和該CSS規(guī)則所影響的小部件特性,能夠使小部件的用戶快速的得出解決沖突的辦法。此外,在一個(gè)實(shí)施例中,能夠利用該報(bào)告自動(dòng)地解決檢測(cè)到的CSS沖突。【專(zhuān)利附圖】【附圖說(shuō)明】[0012]通過(guò)結(jié)合附圖對(duì)本公開(kāi)示例性實(shí)施方式進(jìn)行更詳細(xì)的描述,本公開(kāi)的上述以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯,其中,在本公開(kāi)示例性實(shí)施方式中,相同的參考標(biāo)號(hào)通常代表相同部件。[0013]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。[0014]圖2是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于CSS沖突的自動(dòng)檢測(cè)的方法的流程圖。[0015]圖3是為了說(shuō)明與小部件的可見(jiàn)性相關(guān)的UI約束而給出的例子的視圖。[0016]圖4是為了說(shuō)明與小部件的位置相關(guān)的ui約束而給出的例子的視圖。[0017]圖5是為了說(shuō)明與小部件的布局相關(guān)的UI約束而給出的例子的視圖。[0018]圖6是為了說(shuō)明與小部件的尺寸相關(guān)的UI約束而給出的例子的視圖。[0019]圖7是為了說(shuō)明與小部件的顏色相關(guān)的UI約束而給出的例子的視圖。[0020]圖8是為了說(shuō)明與小部件的可訪問(wèn)性相關(guān)的UI約束而給出的例子的視圖。[0021]圖9是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖2中的驗(yàn)證步驟和沖突源檢測(cè)步驟的處理的流程圖。[0022]圖10是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的在小部件的開(kāi)發(fā)者處生成能影響各個(gè)UI約束的相關(guān)CSS規(guī)則子集的方法的流程圖。[0023]圖11示出了作為示例的CSS菜單、該菜單的HTML代碼以及小部件的開(kāi)發(fā)者定義的CSS規(guī)則[0024]圖12是示出了進(jìn)一步縮減第一集合的例子的圖。[0025]圖13是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的css沖突檢測(cè)系統(tǒng)1300的方框圖?!揪唧w實(shí)施方式】[0026]在本發(fā)明中,CSS規(guī)則是指CSS中的屬性和值的對(duì),屬性(property)是希望設(shè)置的樣式屬注。母I屬性有一個(gè)值。屬性和值被冒號(hào)分開(kāi),例如表示為"pr〇perty:value"。[0027]&下面將參照附圖更詳細(xì)地描述本公開(kāi)的優(yōu)選實(shí)施方式。雖然附圖中顯示了本公開(kāi)的優(yōu)選實(shí)施方式,然而應(yīng)該理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施方式所限制。相反,提供這些實(shí)施方式是為了使本公開(kāi)更加透徹和完整,并且能夠?qū)⒈竟_(kāi)的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。[0028]所屬【
技術(shù)領(lǐng)域
】的技術(shù)人員知道,本發(fā)明可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本公開(kāi)可以具體實(shí)現(xiàn)為以下形式,g卩:可以是完全的硬件、也可以是完全的軟件(包括固件、駐留軟件、微代碼等),還可以是硬件和軟件結(jié)合的形式,本文一般稱為"電路"、"模塊"或"系統(tǒng)"。此外,在一些實(shí)施例中,本發(fā)明還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。[0029]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是--但不限于-電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊磁盤(pán)只讀存儲(chǔ)器(CD_R〇M)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。[0030]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括--但不限于-電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。[0031]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括--但不限于--無(wú)線、電線、光纜、RF等等,或者上述的任意合適的組合。[0032]可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如"C"語(yǔ)言或類(lèi)似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類(lèi)的網(wǎng)絡(luò)-包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。[0033]下面將參照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,這些計(jì)算機(jī)程序指令通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行,產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。[0034]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能使得計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instructionmeans)的制造品(manufacture)。[0035]也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,從而使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令能夠提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過(guò)程。[0036]圖1示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算機(jī)系統(tǒng)/服務(wù)器12的框圖。圖1顯示的計(jì)算機(jī)系統(tǒng)/服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來(lái)任何限制。[0037]如圖1所示,計(jì)算機(jī)系統(tǒng)/服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)系統(tǒng)/服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。[0038]總線I8表示幾類(lèi)總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。[0039]計(jì)算機(jī)系統(tǒng)/服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)系統(tǒng)/服務(wù)器I2訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。[0040]系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)3〇和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)系統(tǒng)/服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫(xiě)不可移動(dòng)的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤(pán)驅(qū)動(dòng)器")。盡管圖1中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(pán)(例如"軟盤(pán)")讀寫(xiě)的磁盤(pán)驅(qū)動(dòng)器,以及對(duì)·可移動(dòng)非易失性光盤(pán)(例如CD-ROM,DVD-ROM或者其它光介質(zhì))讀寫(xiě)的光盤(pán)驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可^包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。一[0041]具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括-但不限于--操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些不例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。[0042]計(jì)算機(jī)系統(tǒng)/服務(wù)器I2也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤(pán)、指向設(shè)備、顯不器24等)通彳目,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)系統(tǒng)/服務(wù)器η交互的設(shè)備通丨目,和/或與使得該計(jì)算機(jī)系統(tǒng)/服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通彳旨。這種通信可以通過(guò)輸入/輸出(I/O)接口22進(jìn)行。并且,計(jì)算機(jī)系統(tǒng)/服務(wù)器12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器2〇通過(guò)總線18與計(jì)算機(jī)系統(tǒng)/服務(wù)器I2的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤(pán)驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。[0043]現(xiàn)在參看圖2,圖2是示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于CSS沖突的自動(dòng)檢測(cè)的方法的流程圖。該用于自動(dòng)CSS沖突檢測(cè)的方法例如由安裝在頁(yè)面或應(yīng)用開(kāi)發(fā)者的瀏覽器中的CSS驗(yàn)證引擎執(zhí)行。在一個(gè)實(shí)施例中,該CSS驗(yàn)證引擎可以被實(shí)現(xiàn)為瀏覽器的一個(gè)插件。所述瀏覽器可以是目前使用的瀏覽器(例如,MicrosoftInternetExplorer或GoogleChrome)或者以后開(kāi)發(fā)的瀏覽器。圖2中的流程圖中的處理包括如下步驟:接收步驟210、運(yùn)行步驟220、驗(yàn)證步驟230、以及沖突源檢測(cè)步驟240。[0044]下面,將詳細(xì)描述圖2中的根據(jù)本發(fā)明的自動(dòng)CSS沖突檢測(cè)方法中的各個(gè)步驟。[0045]在接收步驟210中,接收小部件的開(kāi)發(fā)者定義的至少一個(gè)用戶界面(UI)約束和至少一個(gè)第一CSS規(guī)則、以及小部件的用戶自定義的至少一個(gè)第二CSS規(guī)則。這里,第一CSS規(guī)則是由小部件的開(kāi)發(fā)者定義并隨小部件一起交付的css規(guī)則,也就是用來(lái)規(guī)定小部件的正確外觀或功能的CSS規(guī)則;第二CSS規(guī)則是頁(yè)面或應(yīng)用開(kāi)發(fā)者(g卩,小部件的用戶)自定義的CSS規(guī)則,第二CSS規(guī)則有可能覆蓋第一CSS規(guī)則從而引起CSS沖突。另外,第一CSS規(guī)則和第二css規(guī)則都表示為屬性和值的對(duì)。在本發(fā)明的CSS沖突檢測(cè)方法中,正是要自動(dòng)檢測(cè)哪個(gè)或哪些第二css規(guī)則導(dǎo)致CSS沖突并且影響了小部件的哪個(gè)特性。[0046]用戶界面約束用于約束所述小部件的用戶界面。這些UI約束也是由小部件的開(kāi)發(fā)者定義并隨小部件一起交付的。每個(gè)UI約束能夠驗(yàn)證小部件的一個(gè)特性。例如,UI約束可以用來(lái)驗(yàn)證小部件的尺寸、顏色、位置、布局、可見(jiàn)性、可訪問(wèn)性、或功能等等。[0047]在一個(gè)實(shí)施例中,UI約束可以是用JavaScript編寫(xiě)的代碼段,并且響應(yīng)于該代碼段被執(zhí)行或解釋而返回布爾值。當(dāng)返回的布爾值為真時(shí),表示滿足Π約束;當(dāng)返回的布爾值為假時(shí),表示不滿足UI約束,即,該UI約束被違反。[0048]下面將參照幾個(gè)具體的例子來(lái)詳細(xì)說(shuō)明Π約束。>[0049]圖3是為了說(shuō)明與小部件的可見(jiàn)性相關(guān)的Π約束而給出的例子的視圖。圖3示出了包含3個(gè)選項(xiàng)卡(tab)的選項(xiàng)卡容器。根據(jù)需要,為了保證該Π的功能的正確性,可以定義如下的UI約束:應(yīng)該僅顯示選項(xiàng)卡容器上的一個(gè)選項(xiàng)卡(UI約束1)。UI約束1可以利用Dojo工具包(參見(jiàn)http://dojotoolkit·org)實(shí)現(xiàn)為如下的代碼段:[0050]functioncheckTabContainerQ{varnodes=dojo.query('.tabNode5);//選擇擁有tabNode類(lèi)的所有節(jié)點(diǎn)varvisibleCount=0;//設(shè)置可見(jiàn)選項(xiàng)卡計(jì)數(shù)器#jo.forEach(nodes,function(node){眉t于每個(gè)節(jié)點(diǎn),.如果該節(jié)點(diǎn)被顯示,if(node.sty!e.displav==visiMeGwaiH-Si存廟.可卡計(jì)數(shù)器+1I);returnvisibleCount~1"最終計(jì)數(shù)器值為1則返回真}[0051]在小部件運(yùn)行時(shí),通過(guò)執(zhí)行或者解釋上述代碼段,能夠判斷是否滿足m約束Κ[0052]圖4是為了說(shuō)明與小部件的位置相關(guān)的UI約束而給出的例子的視圖。圖4示出了包含4個(gè)行的表格。根據(jù)需要,為了保證該UI的功能的正確性,可以定義如下的u〗約束:表格每行的表頭應(yīng)該左對(duì)齊(Π約束2)。Π約束2可以利用Dojo工具包實(shí)現(xiàn)為如下的代碼段:[0053]function€heck?ableRows(){varnodes=dojo.query('.header,.table-row');//選擇擁有header和tab丨e-row類(lèi)的"歸有零點(diǎn),即,逸擇表格的每抒的表頭if(nodes.length=0)retumtrue;勝晷不存在表頭5.屬返1?真[0054]varleft:口:nodes[0].style.l_^returnclojo.all(nodes,function(node)(々如果所有節(jié)點(diǎn)的左坐標(biāo)都等于leftreturnnode.style.left==left;//則返回真B;}[0055]在小部件運(yùn)行時(shí),通過(guò)執(zhí)行或者解釋上述代碼段,能夠判斷是否滿足UI約束2。[0056]圖5是為了說(shuō)明與小部件的布局相關(guān)的UI約束而給出的例子的視圖。圖5示出了包含2個(gè)標(biāo)題面板(TitlePane)的格子容器(GridConainer)。根據(jù)需要,為了保證該UI的功能的正確性,可以定義如下的UI約束:一個(gè)元素(標(biāo)題面板)應(yīng)該包含在另一個(gè)元素(格子容器)中(UI約束3)。UI約束3可以利用Doj〇工具包實(shí)現(xiàn)為如下的代碼段:[0057]functioncheckLayout(){v^.,_t=d:ojo:,:.m^gbBOx(dojo.quety('.gridContainer,)[0]);//^grid.Cont^_iL<ic〇:o,:n3argi:HB?_to|e>.qweiy('.tilePa_'J[0]_.Ι?ψ,tiilePanc1?returnparent.left<chi.ld.left&&parent.top<child.top/i如果.妨tlePane起含在&&parent.right>child.righl&&parent.bottoni>child.bottom;//gridContainer中,!//爾顧真[0058]在小部件運(yùn)行時(shí),通過(guò)執(zhí)行或者解釋上述代碼段,能夠判斷是否滿足UI約束3。[0059]在另一個(gè)實(shí)施例中,可以通過(guò)編寫(xiě)新的庫(kù)或者擴(kuò)展已有的庫(kù)而提供更簡(jiǎn)潔的語(yǔ)法,從而更方便地定義UI約束。因此,UI約束也可以是用自定義的庫(kù)編寫(xiě)的代碼段,并且響應(yīng)于該代碼段被執(zhí)行或解釋而返回布爾值。該自定義的庫(kù)可被安裝在頁(yè)面或應(yīng)用開(kāi)發(fā)者的計(jì)算機(jī)中,并且由瀏覽器在執(zhí)行或解釋代碼段時(shí)調(diào)用。[0060]例如,如表1所示,可以定義如下的UI約束語(yǔ)法。[0061][0062]表1【權(quán)利要求】1.一種用于css沖突的自動(dòng)檢測(cè)的方法,該方法包括:接收小部件的開(kāi)發(fā)者定義的至少一個(gè)用戶界面約束和至少一個(gè)第一css規(guī)則、以及小部件的用戶自定義的至少一個(gè)第二CSS規(guī)則,所述用戶界面約束用于約束所述小部件的用戶界面;運(yùn)行包含所述小部件的頁(yè)面;基于所述頁(yè)面的運(yùn)行的結(jié)果,針對(duì)每個(gè)用戶界面約束進(jìn)行自動(dòng)驗(yàn)證;以及響應(yīng)于所述驗(yàn)證得出一個(gè)用戶界面約束被違反,在由覆蓋了第一CSS規(guī)則的第二CSS規(guī)則組成的第一集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二CSS規(guī)則。2.根據(jù)權(quán)利要求1所述的方法,還包括:接收與每個(gè)用戶界面約束關(guān)聯(lián)的第一CSS規(guī)則子集,所述與每個(gè)用戶界面約束關(guān)聯(lián)的第一CSS規(guī)則子集是所述至少一個(gè)第一CSS規(guī)則中的、能夠影響該用戶界面約束的第一CSS規(guī)則的集合。3.根據(jù)權(quán)利要求1或2所述的方法,其中,第一CSS規(guī)則和第二CSS規(guī)則都表示為屬性和值的對(duì)。4.根據(jù)權(quán)利要求2所述的方法,還包括:基于接收的與每個(gè)用戶界面約束關(guān)聯(lián)的第一CSS規(guī)則子集,在所述驗(yàn)證得出該用戶界面約束被違反時(shí),所述第一集合被縮減為僅包含屬性與第一CSS規(guī)則子集中的第一CSS規(guī)則的屬性相同的第二CSS規(guī)則的第二集合。5.根據(jù)權(quán)利要求4所述的方法,還包括:在第二集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二CSS規(guī)則。6.根據(jù)權(quán)利要求1所述的方法,其中,所述用戶界面約束是用JavaScript編寫(xiě)的代碼段,并且響應(yīng)于該代碼段被執(zhí)行或解釋而返回布爾值。7.根據(jù)權(quán)利要求1所述的方法,其中,所述用戶界面約束是用自定義的庫(kù)編寫(xiě)的代碼段,并且響應(yīng)于該代碼段被執(zhí)行或解釋而返回布爾值。8.根據(jù)權(quán)利要求1所述的方法,還包括:自動(dòng)刪除或修改找出的導(dǎo)致違反用戶界面約束的第二CSS規(guī)則。9.一種用于CSS沖突的自動(dòng)檢測(cè)的系統(tǒng),該系統(tǒng)包括:接收裝置,被配置為接收小部件的開(kāi)發(fā)者定義的至少一個(gè)用戶界面約束和至少一個(gè)第一CSS規(guī)則、以及小部件的用戶自定義的至少一個(gè)第二CSS規(guī)則,所述用戶界面約束用于約束所述小部件的用戶界面;運(yùn)行裝置,被配置為運(yùn)行包含所述小部件的頁(yè)面;驗(yàn)證裝置,被配置為基于所述頁(yè)面的運(yùn)行的結(jié)果,針對(duì)每個(gè)用戶界面約束進(jìn)行自動(dòng)驗(yàn)證;以及沖突源檢測(cè)裝置,響應(yīng)于所述驗(yàn)證得出一個(gè)用戶界面約束被違反,在由覆蓋了第一CSS規(guī)則的第二CSS規(guī)則組成的第一集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二CSS規(guī)則。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,接收裝置還被配置為接收與每個(gè)用戶界面約束關(guān)聯(lián)的第一CSS規(guī)則子集,所述與每個(gè)用戶界面約束關(guān)聯(lián)的第一CSS規(guī)則子集是所述至少一個(gè)第一CSS規(guī)則中的、能夠影響該用戶界面約束的第一CSS規(guī)則的集合。11.根據(jù)權(quán)利要求9或10所述的系統(tǒng),其中,第一CSS規(guī)則和第二CSS規(guī)則都表示為屬性和值的對(duì)。12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中,驗(yàn)證裝置還被配置為基于接收的與每個(gè)用戶界面約束關(guān)聯(lián)的第一CSS規(guī)則子集,在所述驗(yàn)證得出該用戶界面約束被違反時(shí),所述第一集合被縮減為僅包含屬性與第一CSS規(guī)則子集中的第一CSS規(guī)則的屬性相同的第二CSS規(guī)則的第二集合。13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中,驗(yàn)證裝置還被配置為在第二集合中找出導(dǎo)致違反該用戶界面約束的一個(gè)或多個(gè)第二CSS規(guī)則。14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述用戶界面約束是用JavaScript編寫(xiě)的代碼段,并且響應(yīng)于該代碼段被執(zhí)行或解釋而返回布爾值。15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中,所述用戶界面約束是用自定義的庫(kù)編寫(xiě)的代碼段,并且響應(yīng)于該代碼段被執(zhí)行或解釋而返回布爾值。16.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括沖突消除裝置,該沖突消除裝置被配置為自動(dòng)刪除或修改找出的導(dǎo)致違反用戶界面約束的第二CSS規(guī)則?!疚臋n編號(hào)】G06F11/36GK104252412SQ201310263958【公開(kāi)日】2014年12月31日申請(qǐng)日期:2013年6月28日優(yōu)先權(quán)日:2013年6月28日【發(fā)明者】王沛,阮奇,費(fèi)伽,朱小文,胡曠申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
彭阳县| 巴中市| 荔浦县| 图木舒克市| 诸城市| 常州市| 绍兴县| 甘孜| 静安区| 个旧市| 沽源县| 双辽市| 泰宁县| 方正县| 通辽市| 沽源县| 嘉鱼县| 沈阳市| 雷州市| 墨竹工卡县| 六盘水市| 会昌县| 青铜峡市| 呼图壁县| 巴彦县| 三江| 民勤县| 徐州市| 安庆市| 高青县| 琼海市| 宁德市| 浮梁县| 乐东| 乐平市| 滕州市| 绥芬河市| 招远市| 甘德县| 花垣县| 焦作市|