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

一種提高瀏覽器頁(yè)面渲染速度的方法和裝置的制作方法

文檔序號(hào):6335164閱讀:176來(lái)源:國(guó)知局
專利名稱:一種提高瀏覽器頁(yè)面渲染速度的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及移動(dòng)終端的顯示技術(shù),特別是指一種提高瀏覽器頁(yè)面渲染速度的方法 和裝置。
背景技術(shù)
隨著移動(dòng)通信技術(shù)的發(fā)展,用戶越來(lái)越多的使用移動(dòng)終端中的瀏覽器進(jìn)行頁(yè)面瀏 覽等操作。移動(dòng)終端的瀏覽器的性能可以從三個(gè)方面去考慮一是數(shù)據(jù)的下載速度,二是內(nèi) 核的處理速度,三是頁(yè)面的渲染速度。前兩個(gè)方面屬于系統(tǒng)性問(wèn)題,本發(fā)明不考慮,重點(diǎn)在 于第三個(gè)方面;通常,渲染速度越快,則頁(yè)面顯示的越快,用戶瀏覽頁(yè)面感覺(jué)越流暢。在渲染 的過(guò)程中通常都需要使用字符顯示系統(tǒng)來(lái)顯示頁(yè)面中的字符。在一般的字符顯示系統(tǒng)中, 所提供的字體大致上可以分為兩類1、等寬字體指字符串中的每個(gè)字符的寬度都相同。例如中文字體、書(shū)信體 (Courier)以及宋體(Courier new)等幾種字體,等寬字體的種類有限,字型的變化也比較簡(jiǎn)單。2、不等寬字體指字符串中的每個(gè)字符的寬度都不相等,例如羅馬字體、全真字 體(True Type)等,不等寬字體的種類較豐富,字體的顯示效果比較美觀。在處理字符的時(shí)候,如果遇到一般的等寬字體,字符顯示系統(tǒng)通常是以等間距的 字體來(lái)顯示。在計(jì)算字符串長(zhǎng)度的計(jì)算上也比較簡(jiǎn)單,只要將字符的個(gè)數(shù)乘以字符的個(gè)數(shù), 就可以計(jì)算出字符串的寬度顯示長(zhǎng)度。但對(duì)于通常的西文字體,即文字是以字母組合以單 字為單位的形態(tài)的文字,力求在顯示中所表現(xiàn)出的形態(tài)能更加符合平時(shí)書(shū)寫(xiě)的習(xí)慣,以及 顯示出的字型能有豐富的變化效果,多半采用非等間距的顯示方式。在不等寬字體,或者不等寬和等寬字體混排而構(gòu)成的字符串中,字符串所占用的 字符寬度不能靠累加字符自身的寬度而獲得。因此,要獲得不等寬字符或者混排組成的字 符串的寬度,尤其是在需要頻繁計(jì)算字符串寬度的時(shí)候,計(jì)算字符串寬度的效率就非常的 重要。一般的解決方法是針對(duì)給定的字符串,從頭掃描字符串;對(duì)字符串的每個(gè)字符分別 調(diào)用字庫(kù)中用于計(jì)算字符串寬度的接口函數(shù),獲得該種字符的繪制寬度;最后將計(jì)算的結(jié) 果累加獲得字符串的總的寬度。如此,對(duì)于不等寬字體,需要獲取字體寬度就意味著需要調(diào) 用字體引擎讀取數(shù)學(xué)矢量,然后進(jìn)行一定的數(shù)學(xué)運(yùn)算才能得到字符的寬度。如果字符串混 排度高,字符量大,就要頻繁的調(diào)用字庫(kù)中的字符寬度接口函數(shù),使得字符寬度計(jì)算的運(yùn)算 效率非常低。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種提高瀏覽器頁(yè)面渲染速度的方法和裝 置,能夠提高瀏覽器計(jì)算字符寬度的效率。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的本發(fā)明提供了一種提高瀏覽器頁(yè)面渲染速度的方法,所述方法包括
設(shè)定渲染操作的初始狀態(tài);從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字 符的寬度;將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度顯示字符串。其中,所述利用字體庫(kù)計(jì)算每段字符的寬度,包括判斷每段字符的字體是否是等 寬字體,如果是,則從字體庫(kù)中獲取該字體的最大寬度值,根據(jù)字符數(shù)量累加計(jì)算字符的寬 度;如果不是,則調(diào)用字體庫(kù)中該字體的接口函數(shù)計(jì)算字符的寬度。其中,所述調(diào)用字體庫(kù)的接口函數(shù),還包括如果沒(méi)有發(fā)現(xiàn)針對(duì)字體的接口函數(shù), 則在字體庫(kù)中創(chuàng)建該字體,并確定其字符的寬度值,保存在字體庫(kù)中。其中,所述根據(jù)字符的字體對(duì)字符串分段,具體是依次讀取每個(gè)字符,如果所讀 取的字符的字體沒(méi)有變化,則屬于同一段;如果所讀取字符的字體變化,則屬于下一段,直 至讀取到字符串的末字符。其中,所述設(shè)定渲染操作的初始狀態(tài),包括初始化字體庫(kù),以及字體庫(kù)中對(duì)應(yīng)各 種字體的接口函數(shù)。其中,所述根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字符的寬度,還包 括整體讀取完字符串后,按照各段字符的字體,根據(jù)字體的分類統(tǒng)一計(jì)算各段字符的寬 度;或者,在讀取字符串的過(guò)程中,當(dāng)字符變化時(shí),計(jì)算上一段的字符寬度。本發(fā)明還提供了一種提高瀏覽器頁(yè)面渲染速度的裝置,所述裝置包括字體庫(kù)和 字符處理模塊,其中,所述字體庫(kù),用于接受渲染操作的初始狀態(tài)的設(shè)定;所述字符處理模塊,用于從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段, 利用字體庫(kù)計(jì)算每段字符的寬度,將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的 寬度顯示字符串。本發(fā)明所提供的提高瀏覽器頁(yè)面渲染速度的方法和裝置,通過(guò)設(shè)定渲染操作的初 始狀態(tài);從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字符 的寬度;將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度顯示字符串。如此,本 發(fā)明中如果有連續(xù)的同字體的不等寬字符就可以不用反復(fù)調(diào)用接口函數(shù),調(diào)用一次即可, 這樣減少了調(diào)用字體庫(kù)接口函數(shù)計(jì)算字符寬度的次數(shù),降低了由此而帶來(lái)的資源開(kāi)銷,提 高了計(jì)算字符寬度的效率。進(jìn)一步的,本發(fā)明能對(duì)未知字體在字體庫(kù)中進(jìn)行創(chuàng)建,使得再次出現(xiàn)該字體時(shí),可 以直接調(diào)用其字符寬度,也能夠提高頁(yè)面渲染的速度,改善了用戶體驗(yàn)。


圖1為本發(fā)明一種提高瀏覽器頁(yè)面渲染速度的方法流程示意圖;圖2為本發(fā)明一種提高瀏覽器頁(yè)面渲染速度的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明的基本思想是設(shè)定渲染操作的初始狀態(tài);從字符串的首字符開(kāi)始,根據(jù) 字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字符的寬度;將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度顯示字符串。下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)一步詳細(xì)闡述。圖1為本發(fā)明一種提高瀏覽器頁(yè)面渲染速度的方法流程示意圖,如圖1所示,所述 方法包括步驟101,設(shè)定渲染操作的初始狀態(tài);具體的,所述設(shè)定渲染操作的初始狀態(tài)包括初始化字體庫(kù)中存儲(chǔ)的各種字體的 字符寬度,以及字體庫(kù)中對(duì)應(yīng)各種不等寬字體的接口函數(shù);所述接口函數(shù)用于計(jì)算各種不 等寬字體的字符寬度。步驟102,從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì) 算每段字符的寬度;具體的,所述根據(jù)字符的字體對(duì)字符串分段,具體是依次讀取每個(gè)字符,如果所 讀取的字符的字體沒(méi)有變化,說(shuō)明讀取的字符是相同字體,屬于同一段;如果所讀取字符的 字體變化,則說(shuō)明讀取的字符是不同字體,屬于下一段,直至讀取到字符串的末字符。所述利用字體庫(kù)計(jì)算每段字符的寬度,包括判斷每段字符的字體是否為等寬字 體,如果是,則從字體庫(kù)中獲取該字體的最大寬度值,根據(jù)字符數(shù)量累加計(jì)算字符的寬度; 如果不是,則調(diào)用字體庫(kù)中這種字體的接口函數(shù)計(jì)算字符的寬度。進(jìn)一步的,調(diào)用字體庫(kù)的接口函數(shù)的過(guò)程中,如果沒(méi)有發(fā)現(xiàn)針對(duì)這種字體的接口 函數(shù),說(shuō)明所處理的字體不存在于字體庫(kù)中屬于未知字體。此時(shí)在字體庫(kù)中創(chuàng)建該字體,并 根據(jù)該字體自身攜帶的信息,例如字體分隔、字體是否加粗等信息,確定其字符的寬度值, 保存在字體庫(kù)中。這樣,當(dāng)這種未知字體再次出現(xiàn)時(shí),可以直接調(diào)用其寬度值。進(jìn)一步的,所述根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字符的寬度, 還包括整體讀取完字符串后,按照各段字符的字體,根據(jù)字體的分類統(tǒng)一計(jì)算各段字符的 寬度;或者,在讀取字符串的過(guò)程中,當(dāng)字符變化時(shí),計(jì)算上一段的字符寬度。步驟103,將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度顯示字符 串ο進(jìn)一步的,在步驟103之后還包括判斷是否還有新的字符串需要計(jì)算,如果有則 執(zhí)行步驟102,否則結(jié)束處理流程。本發(fā)明的計(jì)算字符寬度的效率比現(xiàn)有技術(shù)提高很多,尤其是在頻繁大量處理混 排字符的移動(dòng)終端瀏覽器的頁(yè)面渲染過(guò)程中。假設(shè)等寬的未知字體的最寬字符的寬度 為iMaxWidth,只需要在創(chuàng)建時(shí)計(jì)算一次,以后每次要獲取字體寬度時(shí)都可以直接取用所述 iMaxWidth值,時(shí)間代價(jià)幾乎是0ms。雖然遇到不等寬字體時(shí)必須調(diào)用字體庫(kù)的接口函數(shù)計(jì) 算字符寬度,調(diào)用接口函數(shù)的時(shí)間代價(jià)是數(shù)個(gè)毫秒到數(shù)十個(gè)毫秒不等。但是通過(guò)分段計(jì)算, 可以節(jié)省逐個(gè)字符的調(diào)用接口函數(shù)的時(shí)間。表1是使用本發(fā)明提供的方法前后打開(kāi)網(wǎng)頁(yè)的時(shí)間。其中,序號(hào)從1至5表示其 它條件都相同的前提下,連續(xù)5次打開(kāi)網(wǎng)站www. 21dnn. com。使用本發(fā)明前和使用本發(fā)明后 的數(shù)據(jù)是打開(kāi)網(wǎng)頁(yè)的時(shí)間,單位為秒。
序號(hào)使用本發(fā)明前使用本發(fā)明后1614124731351294362753428表1從表1中可以看出瀏覽器的性能有了提高。并且針對(duì)不同的頁(yè)面進(jìn)行測(cè)試可知, 頁(yè)面的字符串?dāng)?shù)量越小,渲染速度提高的越??;頁(yè)面的字符串?dāng)?shù)量和復(fù)雜度越大,渲染速度 提高也越大。使用本發(fā)明提供的方法后,移動(dòng)終端瀏覽器打開(kāi)網(wǎng)頁(yè)的速度明顯提高,改善了 用戶體驗(yàn)。圖2為本發(fā)明一種提高瀏覽器頁(yè)面渲染速度的裝置結(jié)構(gòu)示意圖,如圖2所示,所述 裝置包括字體庫(kù)21,字符處理模塊22,其中,所述字體庫(kù)21,用于接受渲染操作的初始狀態(tài)的設(shè)定;具體的,所述字體庫(kù)21接受渲染操作的初始狀態(tài)的設(shè)定,包括初始化字體庫(kù)21 中存儲(chǔ)的各種字體的字符寬度,以及字體庫(kù)21中對(duì)應(yīng)各種不等寬字體的接口函數(shù);所述接 口函數(shù)用于計(jì)算各種不等寬字體的字符寬度。所述字符處理模塊22,用于從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分 段,利用字體庫(kù)21計(jì)算每段字符的寬度,將各段的字符寬度相加得到字符串的寬度,根據(jù) 得到的寬度顯示字符串。具體的,所述字符處理模塊22根據(jù)字符的字體對(duì)字符串分段,具體是依次讀取 字符,所讀取的字符的字體沒(méi)有變化時(shí),說(shuō)明讀取的字符是相同字體,屬于同一段;所讀取 字符的字體變化時(shí),說(shuō)明讀取的字符是不同字體,屬于下一段,直至讀取到字符串的末字 符。所述字符處理模塊22利用字體庫(kù)21計(jì)算每段字符的寬度,包括判斷每段字符的 字體是否為等寬字體,是等寬字體時(shí),從字體庫(kù)21中獲取該字體的最大寬度值,根據(jù)字符 數(shù)量累加計(jì)算字符的寬度;不是等寬字體時(shí),調(diào)用字體庫(kù)21中這種字體的接口函數(shù)計(jì)算字 符的寬度。進(jìn)一步的,所述字符處理模塊22調(diào)用字體庫(kù)21的接口函數(shù)的過(guò)程中,如果沒(méi)有發(fā) 現(xiàn)針對(duì)這種字體的接口函數(shù),說(shuō)明所處理的字體不存在于字體庫(kù)中屬于未知字體。此時(shí)在 字體庫(kù)21中創(chuàng)建該字體,并根據(jù)該字體自身攜帶的信息,例如字體分隔、字體是否加粗等 信息,確定其字符的寬度值,保存在字體庫(kù)21中。這樣,當(dāng)所述未知字體再次出現(xiàn)時(shí),可以 直接調(diào)用其寬度值。
進(jìn)一步的,所述字符處理模塊22根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)21計(jì) 算每段字符的寬度,還包括整體讀取完字符串后,按照各段字符的字體,根據(jù)字體的分類 統(tǒng)一計(jì)算各段字符的寬度;或者,在讀取字符串的過(guò)程中,當(dāng)字符變化時(shí),計(jì)算上一段的字 符寬度。進(jìn)一步的,所述字符處理模塊22,還用于判斷是否還有新的字符串需要計(jì)算,如果 有則重新開(kāi)始從首字符開(kāi)始對(duì)字符串分段并計(jì)算,如果沒(méi)有停止操作。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù) 范圍之內(nèi)。
權(quán)利要求
一種提高瀏覽器頁(yè)面渲染速度的方法,其特征在于,所述方法包括設(shè)定渲染操作的初始狀態(tài);從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字符的寬度;將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度顯示字符串。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述利用字體庫(kù)計(jì)算每段字符的寬度, 包括判斷每段字符的字體是否是等寬字體,如果是,則從字體庫(kù)中獲取該字體的最大寬度 值,根據(jù)字符數(shù)量累加計(jì)算字符的寬度;如果不是,則調(diào)用字體庫(kù)中該字體的接口函數(shù)計(jì)算 字符的寬度。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述調(diào)用字體庫(kù)的接口函數(shù),還包括如 果沒(méi)有發(fā)現(xiàn)針對(duì)字體的接口函數(shù),則在字體庫(kù)中創(chuàng)建該字體,并確定其字符的寬度值,保存 在字體庫(kù)中。
4.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)字符的字體對(duì)字符串分段, 具體是依次讀取每個(gè)字符,如果所讀取的字符的字體沒(méi)有變化,則屬于同一段;如果所讀 取字符的字體變化,則屬于下一段,直至讀取到字符串的末字符。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述設(shè)定渲染操作的初始狀態(tài),包括 初始化字體庫(kù),以及字體庫(kù)中對(duì)應(yīng)各種字體的接口函數(shù)。
6.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)字符的字體對(duì)字符串分段, 利用字體庫(kù)計(jì)算每段字符的寬度,還包括整體讀取完字符串后,按照各段字符的字體,根 據(jù)字體的分類統(tǒng)一計(jì)算各段字符的寬度;或者,在讀取字符串的過(guò)程中,當(dāng)字符變化時(shí),計(jì) 算上一段的字符寬度。
7.一種提高瀏覽器頁(yè)面渲染速度的裝置,其特征在于,所述裝置包括字體庫(kù)和字符 處理模塊,其中,所述字體庫(kù),用于接受渲染操作的初始狀態(tài)的設(shè)定;所述字符處理模塊,用于從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段,利用 字體庫(kù)計(jì)算每段字符的寬度,將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度 顯示字符串。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述字符處理模塊利用字體庫(kù)計(jì)算每段 字符的寬度,包括判斷每段字符的字體是否是等寬字體,是等寬字體時(shí),從字體庫(kù)中獲取 該字體的最大寬度值,根據(jù)字符數(shù)量累加計(jì)算字符的寬度;不是等寬字體時(shí),調(diào)用字體庫(kù)中 該字體的接口函數(shù)計(jì)算字符的寬度。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述字符處理模塊調(diào)用字體庫(kù)的接口函 數(shù),包括沒(méi)有發(fā)現(xiàn)針對(duì)字體的接口函數(shù)時(shí),在字體庫(kù)中創(chuàng)建該字體,并確定其字符的寬度 值,保存在字體庫(kù)中。
10.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述字符處理模塊根據(jù)字符的字體 對(duì)字符串分段,具體是依次讀取每個(gè)字符,所讀取的字符的字體沒(méi)有變化時(shí),屬于同一段; 所讀取字符的字體變化時(shí),屬于下一段,直至讀取到字符串的末字符。
全文摘要
本發(fā)明公開(kāi)了一種提高瀏覽器頁(yè)面渲染速度的方法,所述方法包括設(shè)定渲染操作的初始狀態(tài);從字符串的首字符開(kāi)始,根據(jù)字符的字體對(duì)字符串分段,利用字體庫(kù)計(jì)算每段字符的寬度;將各段的字符寬度相加得到字符串的寬度,根據(jù)得到的寬度顯示字符串。本發(fā)明還公開(kāi)了一種提高瀏覽器頁(yè)面渲染速度的裝置,通過(guò)上述方法和裝置,減少了調(diào)用字體庫(kù)接口函數(shù)計(jì)算字符寬度的次數(shù),降低了由此而帶來(lái)的資源開(kāi)銷,提高了計(jì)算字符寬度的效率。
文檔編號(hào)G06F17/30GK101986289SQ20101053111
公開(kāi)日2011年3月16日 申請(qǐng)日期2010年11月3日 優(yōu)先權(quán)日2010年11月3日
發(fā)明者付少先 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
蛟河市| 和龙市| 邵阳市| 永吉县| 潼南县| 翁牛特旗| 荥阳市| 神木县| 大石桥市| 宁陵县| 岳阳县| 鄂托克旗| 卓尼县| 天气| 湖南省| 米泉市| 新乡市| 达尔| 宿州市| 华坪县| 呼伦贝尔市| 博野县| 灵川县| 鄂温| 鹿泉市| 加查县| 永寿县| 来宾市| 莱西市| 内乡县| 元谋县| 合水县| 江陵县| 江华| 行唐县| 泸定县| 勐海县| 舟山市| 桃江县| 萨嘎县| 高尔夫|