本發(fā)明實施例通信領(lǐng)域,并且更具體地,涉及一種用于推送的方法、服務(wù)器和終端設(shè)備。
背景技術(shù):
由于HTML5(HTML為超文本標(biāo)記語言(Hypertext Markup Language)具有良好的跨平臺特性,隨著HTML5成為網(wǎng)頁(WEB)開發(fā)標(biāo)準(zhǔn)后,越來越多的應(yīng)用采用WEB進行開發(fā)應(yīng)用,越來越多的電視,機頂盒,移動設(shè)備,物聯(lián)網(wǎng)(Internet of Things,IoT)設(shè)備等嵌入式設(shè)備都支持WEB網(wǎng)頁瀏覽或WEB應(yīng)用。
但是,嵌入式設(shè)備往往為了降低成本,通常會降低內(nèi)存配置,而目前網(wǎng)站設(shè)計又非常的豐富,一般都會使用大量的圖片和復(fù)雜的網(wǎng)頁內(nèi)容,這往往會使得低端設(shè)備出現(xiàn)內(nèi)存不足(Out of memory,OOM),最終導(dǎo)致瀏覽器異常退出,使得用戶體驗不佳。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種用于推送的方法和設(shè)備,可以避免終端設(shè)備因為內(nèi)存不足所造成的崩潰,從而可以提升用戶體驗
第一方面,提供了一種用于推送的方法,包括:
第一服務(wù)器確定需要向終端設(shè)備推送的推送對象以及所述終端設(shè)備對所述推送對象的內(nèi)存占用要求;
根據(jù)所述內(nèi)存占用要求,對所述推送對象進行處理;
向所述終端設(shè)備推送處理后的所述推送對象。
因此,在本發(fā)明實施例中,獲取終端設(shè)備對推送對象的內(nèi)存占用要求;根據(jù)所述內(nèi)存占用要求,對所述推送對象進行處理;向所述終端設(shè)備推送處理后的所述推送對象,可以避免終端設(shè)備因為內(nèi)存不足所造成的崩潰,從而可以提升用戶體驗。
并且進一步地,本發(fā)明實施例可以更適應(yīng)于嵌入式設(shè)備,嵌入式設(shè)備往往隨著當(dāng)前平臺運行場景剩余不同的內(nèi)存,為了讓處于低內(nèi)存場景下也能夠平滑使用,由服務(wù)器對推送對象進行處理,可以從根本上使推送對象適用于不同內(nèi)存配置的設(shè)備。
可選地,根據(jù)該內(nèi)存占用要求,對該推送對象進行處理也可以是動態(tài)生成符合該內(nèi)存占用要求的推送對象。
可選地,對推送對象進行處理可以指對已有的推送對象進行處理。
可選地,所述方法還包括:
對所述推送對象所占用的內(nèi)存大小進行估算;
所述根據(jù)所述內(nèi)存占用要求,對所述推送對象進行處理,包括:
在所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存占用要求時,對所述推送對象進行處理,使得處理后的所述推送對象占用的內(nèi)存大小滿足所述內(nèi)存占用要求。
可選地,所述方法還包括:
接收第二服務(wù)器發(fā)送的重定向消息,所述重定向消息用于指示向所述終端設(shè)備推送的所述推送對象和用于指示所述內(nèi)存占用要求;
所述第一服務(wù)器確定需要向終端設(shè)備推送的推送對象以及所述終端設(shè)備對所述推送對象的內(nèi)存占用要求,包括:
根據(jù)所述重定向消息,確定需要向所述終端設(shè)備推送的所述推送對象以及所述終端設(shè)備對所述推送對象的所述內(nèi)存占用要求。
因此,在本發(fā)明實施例中,利用專門的服務(wù)器進行低內(nèi)存化處理,可以使得處理更加高效。
可選地,所述方法還包括:
接收所述終端設(shè)備發(fā)送的請求消息,所述請求消息用于指示請求向所述終端設(shè)備推送的所述推送對象和用于指示所述內(nèi)存占用要求;
所述第一服務(wù)器確定需要向終端設(shè)備推送的推送對象以及所述終端設(shè)備對所述推送對象的內(nèi)存占用要求,包括:
根據(jù)所述請求消息,確定需要向所述終端設(shè)備推送的所述推送對象以及所述終端設(shè)備對所述推送對象的所述內(nèi)存占用要求。
可選地,所述對推送對象進行處理包括:
對所述推送對象進行以下處理中的至少一種:
不相關(guān)內(nèi)容的過濾處理、圖片處理、富媒體鏈接去除處理和對象中的分塊的去除處理。
可選地,所述對所述推送對象進行處理,包括:
按照預(yù)定處理順序?qū)λ鐾扑蛯ο筮M行處理:
不相關(guān)內(nèi)容的過濾處理、圖片處理、富媒體鏈接去除處理和對象中的分塊的去除處理;
其中,在利用當(dāng)前處理方式對所述推送對象進行處理后,如果處理后的所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存要求時,則繼續(xù)進行下一處理方式的處理,否則停止對所述推送對象的處理。
可選地,所述圖片處理包括圖片去除處理或圖片質(zhì)量降低處理;
所述對所述推送對象進行處理,包括:
確定在去除所述推送對象中的全部圖片時,所述推送對象所占用的內(nèi)存大小是否滿足所述內(nèi)存占用要求;
如果滿足,則對所述推送對象進行圖片質(zhì)量降低處理;
如果不能滿足,則對所述推送對象進行圖片去除處理。
可選地,在本發(fā)明實施例中,所述推送對象包括多個分塊;
根據(jù)所述內(nèi)存占用要求,對所述推送對象進行處理,包括:
根據(jù)所述多個分塊的優(yōu)先級,在對當(dāng)前分塊進行處理后,如果所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存要求時,則繼續(xù)進行下一分塊的處理,否則停止對所述推送對象的處理。
可選地,所述推送對象為網(wǎng)頁或圖形界面。
第二方面,提供了一種用于推送的方法,包括:
終端設(shè)備向第一服務(wù)器發(fā)送請求消息,所述請求消息用于指示請求向所述終端設(shè)備推送的推送對象和用于指示所述終端設(shè)備對所述推送對象的內(nèi)存占用要求;
接收所述第一服務(wù)器或第二服務(wù)器發(fā)送的按照所述內(nèi)存占用要求處理后的所述推送對象。
可選地,所述推送對象為網(wǎng)頁或圖形界面。
第三方面,提供了一種用于推送送的方法,包括:
接收終端設(shè)備發(fā)送的請求消息,所述請求消息用于指示請求向所述終端設(shè)備推送的推送對象和用于指示所述終端設(shè)備對所述推送對象的內(nèi)存占用要求;
對所述推送對象所占用的內(nèi)存大小進行估算;
在所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存占用要求時,向第一服務(wù)器發(fā)送重定向消息,所述重定向消息用于指示向所述終端設(shè)備推送的所述推送對象和用于指示所述內(nèi)存占用要求。
可選地,所述推送對象為網(wǎng)頁或圖形界面。
第四方面,提供了一種服務(wù)器,包括用于執(zhí)行第一方面或第一方面的任一可選的實現(xiàn)方式中的方法的單元。
第五方面,提供了一種終端設(shè)備,包括用于執(zhí)行第二方面或第二方面的任一可選的實現(xiàn)方式中的方法的單元。
第六方面,提供了一種服務(wù)器,包括用于執(zhí)行第三方面或第三方面的任一可選的實現(xiàn)方式中的方法的單元。
第七方面,提供了一種服務(wù)器,包括存儲器、收發(fā)器和處理器,該存儲器上存儲有可以用于指示執(zhí)行上述第一方面或其任意可選的實現(xiàn)方式的程序代碼,當(dāng)該代碼被執(zhí)行時,該處理器可以實現(xiàn)方法中第一服務(wù)器執(zhí)行的各個操作。
第八方面,提供了一種終端設(shè)備,包括存儲器、收發(fā)器和處理器,該存儲器上存儲有可以用于指示執(zhí)行上述第二方面或其任意可選的實現(xiàn)方式的程序代碼,當(dāng)該代碼被執(zhí)行時,該處理器可以實現(xiàn)方法中終端設(shè)備執(zhí)行的各個操作。
第九方面,提供了一種服務(wù)器,包括存儲器、收發(fā)器和處理器,該存儲器上存儲有可以用于指示執(zhí)行上述第三方面或其任意可選的實現(xiàn)方式的程序代碼,當(dāng)該代碼被執(zhí)行時,該處理器可以實現(xiàn)方法中第二服務(wù)器執(zhí)行的各個操作。
第十方面,提供一種計算機可讀介質(zhì),所述計算機可讀介質(zhì)存儲用于終端設(shè)備執(zhí)行的程序代碼,所述程序代碼包括用于執(zhí)行第一方面或其各種實現(xiàn)方式中的方法的指令。
第十一方面,提供一種計算機可讀介質(zhì),所述計算機可讀介質(zhì)存儲用于網(wǎng)絡(luò)設(shè)備執(zhí)行的程序代碼,所述程序代碼包括用于執(zhí)行第二方面或其各種實現(xiàn)方式中的方法的指令。
第十二方面,提供一種計算機可讀介質(zhì),所述計算機可讀介質(zhì)存儲用于網(wǎng)絡(luò)設(shè)備執(zhí)行的程序代碼,所述程序代碼包括用于執(zhí)行第三方面或其各種實現(xiàn)方式中的方法的指令。
附圖說明
圖1是根據(jù)本發(fā)明實施例的通信系統(tǒng)的示意性圖。
圖2是根據(jù)本發(fā)明實施例的用于推送的方法的示意性流程圖。
圖3是根據(jù)本發(fā)明實施例的用于推送的方法的示意性流程圖。
圖4是根據(jù)本發(fā)明實施例的網(wǎng)頁分塊的示意性圖。
圖5是根據(jù)本發(fā)明實施例的用于推送的方法的示意性流程圖。
圖6是根據(jù)本發(fā)明實施例的服務(wù)器的示意性框圖。
圖7是根據(jù)本發(fā)明實施例的終端設(shè)備的示意性框圖。
圖8是根據(jù)本發(fā)明實施例的服務(wù)器的示意性框圖。
圖9是根據(jù)本發(fā)明實施例的通信裝置的示意性框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行詳細說明。
圖1是根據(jù)本發(fā)明實施例的通信系統(tǒng)100的示意性圖。
在該系統(tǒng)100中,終端設(shè)備110可以向服務(wù)器120發(fā)送請求消息,該請求消息可以用于指示服務(wù)器120向終端設(shè)備110推送的推送對象;服務(wù)器120可以向該終端設(shè)備110推送終端設(shè)備110請求的推送對象。
可選地,服務(wù)器120也可以將該請求重定向到服務(wù)器130,由服務(wù)器130向終端設(shè)備110推送終端設(shè)備110請求的推送對象;或者,服務(wù)器130對推送對象進行處理后,發(fā)送給服務(wù)器120,由服務(wù)器120將服務(wù)器130處理的推送對象發(fā)送給終端設(shè)備110。
可選地,該推送對象可以是網(wǎng)頁,也可以是圖形界面。
可選地,在本發(fā)明實施例中,在推送對象是網(wǎng)頁時,服務(wù)器120可以為網(wǎng)頁服務(wù)器,具體可以為WWW服務(wù)器。
可選地,在本發(fā)明實施例中,終端設(shè)備可以是嵌入式設(shè)備,例如,電視、機頂盒、移動設(shè)備、IoT設(shè)備等。
圖2是根據(jù)本發(fā)明實施例的用于推送的方法200的示意性流程圖。可選地,該方法可以應(yīng)用于圖1所示的通信系統(tǒng)中,當(dāng)然,也可以應(yīng)用于其他通信系統(tǒng)中,例如,不包括服務(wù)器130的通信系統(tǒng)。應(yīng)理解,以下提到的第一服務(wù)器可以是服務(wù)器110,也可以是服務(wù)器120。
如圖2所示,該方法200包括以下內(nèi)容。
在211中,第一服務(wù)器確定需要向終端設(shè)備推送的推送對象以及所述終端設(shè)備對所述推送對象的內(nèi)存占用要求。
可選地,該推送對象為網(wǎng)頁或圖形界面。
為了便于理解,以下將分別結(jié)合圖2和圖3描述第一服務(wù)器確定需要向終端設(shè)備推送的推送對象以及所述終端設(shè)備對所述推送對象的內(nèi)存占用要求的兩種方式。
方式A
在214中,終端設(shè)備可以向第一服務(wù)器發(fā)送請求消息,該請求消息用于指示請求該第一服務(wù)器向該終端設(shè)備推送的推送對象和用于指示該內(nèi)存占用要求。
在215中,第一服務(wù)器可以接收該請求消息。
從而,該第一服務(wù)器從該請求消息中需要推送的推送對象以及內(nèi)存占用要求。
可選地,在如圖2所示的情況中,該第一服務(wù)器可以是圖1所示的服務(wù)器120。
方式B
在217中,終端設(shè)備可以向第二服務(wù)器發(fā)送請求消息,該請求消息用于指示請求該第二服務(wù)器向該終端設(shè)備推送的推送對象和用于指示該內(nèi)存占用要求。
在218中,第二服務(wù)器接收該請求消息。
在219中,該第二服務(wù)器從該請求消息中,確定需要向終端設(shè)備推送的推送對象以及該內(nèi)存占用要求,并對該推送對象所占用的內(nèi)存大小進行估算。
在220中,在所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存占用要求時,向第一服務(wù)器發(fā)送重定向消息,所述重定向消息用于指示所述第一服務(wù)器向所述終端設(shè)備推送的所述推送對象和所述內(nèi)存占用要求。
在221中,第一服務(wù)器接收重定向消息。
從而,第一服務(wù)器可以從該重定向消息中,獲取終端設(shè)備對待推送對象的內(nèi)存占用要求以及需要推送的推送對象。
可選地,在所述推送對象所占用的內(nèi)存大小能滿足所述內(nèi)存占用要求時,則第一服務(wù)器可以直接將未處理的推送對象發(fā)送給終端設(shè)備。
可選地,在如圖3所示的情況中,第一服務(wù)器可以是圖1所示的服務(wù)器130,第二服務(wù)器可以是圖1所示的服務(wù)器120。
終端設(shè)備向第一服務(wù)器或第二服務(wù)器發(fā)送的請求消息可以在現(xiàn)有的消息中增加字段來實現(xiàn)攜帶對推送對象的內(nèi)存占用要求。
例如,在待推送對象為網(wǎng)頁時,終端設(shè)備可以通過調(diào)用瀏覽器客戶端來請求網(wǎng)頁,其中,瀏覽器信息可以攜帶在用戶代理(User Agent,UA)中,可以在UA中增加字段,來攜帶終端設(shè)備對推送對象的內(nèi)存占用要求,其中,該字段可以設(shè)置在UA中的任何位置,例如,設(shè)置在最前一個字段中,居中的字段或最后的字段中。以下以攜帶內(nèi)存占用要求的字段設(shè)置在UA的最后一個字段的例子,其中,該例子可以適用于安卓系統(tǒng)中:
User-Agent:Mozilla/5.0(Linux;U;Android 2.2.1;en-us;Nexus One Build/FRG83)AppleWebKit/533.1(KHTML,like Gecko)Version/4.0Mobile Safari/533.1DeviceMem/51200
以上例子中,內(nèi)存占用要求用于指示推送對象的內(nèi)存占用要低于51200KB。
可選地,在本發(fā)明實施例中,終端設(shè)備發(fā)送的請求消息中攜帶的可以是終端設(shè)備當(dāng)前剩余的內(nèi)存,則該請求消息指示的內(nèi)存占用要求是推送對象在終端設(shè)備占用的內(nèi)存不能高于該當(dāng)前剩余的內(nèi)存。
可選地,在本發(fā)明實施例中,終端設(shè)備發(fā)送的請求消息中攜帶的可以是終端設(shè)備當(dāng)前剩余內(nèi)存的百分比或總內(nèi)存的百分比,例如,當(dāng)前剩余內(nèi)存的50%,或總內(nèi)存的20%,則該請求消息指示的內(nèi)存占用要求是推送對象在終端設(shè)備占用的內(nèi)存不能高于該當(dāng)前剩余內(nèi)存的50%或總內(nèi)存的20%。
其中,該百分比可以根據(jù)通常占用內(nèi)存比和終端性能而定,在此不做具體限定。例如,如果終端通常占用的內(nèi)存是70%,雖然當(dāng)前剩余內(nèi)存很高,但考慮到內(nèi)存可能會突然改變,則可以結(jié)合終端設(shè)備的實際使用情況,將確定推送對象在終端設(shè)備占用的內(nèi)存不能高于總內(nèi)存的20%。
可選地,在本發(fā)明實施例中,終端設(shè)備發(fā)送的請求消息中攜帶的可以是終端設(shè)備當(dāng)前剩余內(nèi)存。則服務(wù)器可以預(yù)先約定的百分比,確定終端設(shè)備的內(nèi)存占用要求,例如,預(yù)先約定的比例是70%,則終端設(shè)備對推送對象的內(nèi)存占用要求是不能高于剩余內(nèi)存的70%。此時,可以認(rèn)為請求消息中隱式指示了終端設(shè)備對推送對象的內(nèi)存占用要求。
在212中,第一服務(wù)器根據(jù)該內(nèi)存占用要求,對該推送對象進行處理。
可選地,在本發(fā)明實施例中,根據(jù)該內(nèi)存占用要求,對該推送對象進行處理也可以是動態(tài)生成符合該內(nèi)存占用要求的推送對象。
例如,在推送對象為圖形界面時,可以根據(jù)終端設(shè)備的內(nèi)存占用要求,將界面元素進行組合,動態(tài)生成圖像界面。
可選地,在本發(fā)明實施例中,對推送對象進行處理可以指對已有的推送對象進行處理。
例如,終端設(shè)備需要某一網(wǎng)頁,則可以根據(jù)終端設(shè)備的內(nèi)存占用要求,對已有的網(wǎng)頁進行處理。
可選地,在本發(fā)明實施例中,第一服務(wù)器可以對該推送對象所占用的內(nèi)存大小進行估算;在該推送對象所占用的內(nèi)存大小不能滿足該內(nèi)存占用要求時,對該推送對象進行處理,使得處理后的該推送對象占用的內(nèi)存大小滿足該內(nèi)存占用要求。
可選地,在本發(fā)明實施例中,可以對該推送對象進行以下處理中的至少一種:
(1)不相關(guān)內(nèi)容的過濾處理,具體地,可以分析推送對象的原始內(nèi)容,過濾掉不相關(guān)的內(nèi)容,例如,廣告等。
(2)圖片處理。
(3)富媒體鏈接去除處理,例如,video標(biāo)簽、audio標(biāo)簽等的處理。
(4)對象中的分塊的去除處理。
可選地,在本發(fā)明實施例中,可以按照順序?qū)υ撏扑蛯ο筮M行處理,其中,在利用當(dāng)前處理方式對推送對象進行處理后,如果處理后的該推送對象所占用的內(nèi)存大小不能滿足該內(nèi)存要求時,則繼續(xù)進行下一處理方式的處理,否則停止對該推送對象的處理,其中,處理順序可以如下所以:
(1)不相關(guān)內(nèi)容的過濾處理。
具體地,可以分析推送對象的原始內(nèi)容,過濾掉不相關(guān)的內(nèi)容,例如,廣告等。
(2)圖片處理。
具體地,方法(1)內(nèi)存無法滿足終端設(shè)備的內(nèi)存占用要求,則第一服務(wù)器進行圖片低內(nèi)存化處理,因為圖片占用網(wǎng)頁比較大的比重,這往往是使終端設(shè)備消耗比較大的內(nèi)存,所以優(yōu)先進行圖片的低內(nèi)存化處理。
(3)富媒體鏈接去除處理。
具體地,方法(2)處理后無法滿足終端設(shè)備的內(nèi)存占用要求,則第一服務(wù)器需要去掉富媒體鏈接處理,將推送對象上的富媒體標(biāo)簽鏈接進行去掉,如視頻(video),音頻(audio)標(biāo)簽等。
(4)對象中的分塊的去除處理。
具體地,方法(3)對圖片處理后還無法滿足內(nèi)存占用要求,則需要對推送對象內(nèi)容進行分析重排,去掉重要的分塊,重新排版推送對象,得到精簡的推送對象。
可選地,推送對象為網(wǎng)頁時,分塊可以為網(wǎng)頁的塊級元素(DIV)。
可選地,在本發(fā)明實施例中,該圖片處理包括圖片去除處理或圖片質(zhì)量降低處理;
第一服務(wù)器可以確定在去除該推送對象中的全部圖片時,該推送對象所占用的內(nèi)存大小是否滿足該內(nèi)存占用要求;
如果滿足,則對該推送對象進行圖片質(zhì)量降低處理;
如果不能滿足,則對該推送對象進行圖片去除處理。
可選地,在本發(fā)明實施例中,圖片質(zhì)量降低處理可以包括以下中的至少一種:
(1)圖片格式轉(zhuǎn)換。
一般將圖片格式消耗內(nèi)存差別很大(當(dāng)前占用內(nèi)存少的格式有WebP,PNG8等),例如,WebP格式比PNG格式減少28%~45%,WebP圖片格式有更好的壓縮率,所以可以將PNG、JPG轉(zhuǎn)換成WebP格式或其他壓縮率更低的格式。
(2)壓縮質(zhì)量控制。
有的格式可以進行壓縮質(zhì)量控制,如WebP可以采用有損壓縮和無損壓縮,根據(jù)內(nèi)存要求可進行采用有損壓縮進行減少圖片體積。
(3)減少圖片顏色數(shù)。
不同顏色數(shù)目決定了顯示的顏色的豐富程度,對于終端內(nèi)存不足的可以將32位變成8位,這個不僅減少圖片本身的體積,而且還減少了解碼后的內(nèi)存占用。
可選地,所述推送對象包括多個分塊;第一服務(wù)器根據(jù)所述多個分塊的優(yōu)先級,在對當(dāng)前分塊進行處理后,如果所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存要求時,則進行下一分塊的處理,否則停止對所述推送對象的處理。
例如,如圖4所示,一個網(wǎng)頁頁面分成了A,B,C,D,E,F(xiàn)不同的分塊(DIV),從用戶體驗角度出發(fā),普通用戶在瀏覽頁面時是自上而下、自左而右進行,因此,頁面區(qū)域重要性按上面規(guī)律可分頁面區(qū)域重要性:A>B>C>D>E>F,不同分塊可以按照頁面分塊的重要性而采用不同優(yōu)先級,越不重要的位置優(yōu)先進行處理(可以降低顯示質(zhì)量來減少內(nèi)存的占用),逐個網(wǎng)頁分塊來進行處理,直到滿足終端的內(nèi)存要求。
其中,對各個分塊按照優(yōu)先級進行處理可以是對任意分塊進行處理時,可以對該分塊進行多種處理(例如,不相關(guān)內(nèi)容的過濾處理和圖片處理),如果不能滿足,則進行下一分塊的處理?;蛘?,可以依次對多個分塊進行一種處理(例如,不相關(guān)內(nèi)容的過濾處理),如果不能滿足要求,則再依次對多個分塊進行下一種處理(例如,圖片處理)。
在213中,第一服務(wù)器向該終端設(shè)備推送處理后的該推送對象。
在216中,終端設(shè)備接收第一服務(wù)器推送的處理后的該推送對象。
可選地,在本發(fā)明實施例中,終端設(shè)備在接收到第一服務(wù)器推送的推送對象之后,可以對該推送對象進行其他處理,例如,在該推送對象為網(wǎng)頁或圖形界面時,可以對該網(wǎng)頁或者圖形界面進行渲染處理,并呈現(xiàn)在顯示設(shè)備中。
為了更加清楚地理解本發(fā)明,以下將結(jié)合圖5描述根據(jù)本發(fā)明實施例的用于推送的方法300。應(yīng)理解,方法200和方法300的特征可以結(jié)合使用,為了簡潔,有些特征在其中一個方法中簡略描述或未作描述,但是可以參考另一方法的描述。
圖5是根據(jù)本發(fā)明實施例的用于推送的方法300的示意性流程圖。
如圖5所示,該方法300包括以下內(nèi)容。
在301中,瀏覽器客戶端獲取終端設(shè)備的剩余內(nèi)存。
在302中,瀏覽器客戶端向網(wǎng)頁服務(wù)器發(fā)送網(wǎng)頁數(shù)據(jù)請求,其中,該網(wǎng)頁數(shù)據(jù)請求攜帶終端設(shè)備的剩余內(nèi)存。
在303中,網(wǎng)頁服務(wù)器判斷請求網(wǎng)頁占用的內(nèi)存是否小于等于終端設(shè)備的剩余內(nèi)存。如果是,執(zhí)行304,如果否,執(zhí)行305。
在304中,網(wǎng)頁服務(wù)器返回正常網(wǎng)頁給瀏覽器客戶端。
在305中,對網(wǎng)頁進行低內(nèi)存處理。
在306中,判斷處理后的網(wǎng)頁是否小于等于終端設(shè)備的剩余內(nèi)存。如果是,執(zhí)行307,否則,重復(fù)執(zhí)行305以及306。
在307中,將低內(nèi)存化處理的網(wǎng)頁發(fā)送給瀏覽器客戶端。
在308中,瀏覽器客戶端渲染網(wǎng)頁,該網(wǎng)頁可以未進行處理的網(wǎng)頁或者為已進行低內(nèi)存化處理的網(wǎng)頁。
應(yīng)理解,以上描述的瀏覽器客戶端執(zhí)行某些操作具體可以為終端設(shè)備通過調(diào)用該瀏覽器客戶端執(zhí)行這些操作。
還應(yīng)理解,305-307可以由網(wǎng)頁服務(wù)器執(zhí)行,也可以由其他服務(wù)器執(zhí)行,例如,專門用于網(wǎng)頁低內(nèi)存化處理的服務(wù)器。
因此,在本發(fā)明實施例中,獲取終端設(shè)備對推送對象的內(nèi)存占用要求;根據(jù)所述內(nèi)存占用要求,對所述推送對象進行處理;向所述終端設(shè)備推送處理后的所述推送對象,可以避免終端設(shè)備因為內(nèi)存不足所造成的崩潰,從而可以提升用戶體驗。
并且進一步地,本發(fā)明實施例可以更適應(yīng)于嵌入式設(shè)備,嵌入式設(shè)備往往隨著當(dāng)前平臺運行場景剩余不同的內(nèi)存,為了讓處于低內(nèi)存場景下也能夠平滑使用,由服務(wù)器對推送對象進行處理,可以從根本上使推送對象適用于不同內(nèi)存配置的設(shè)備。
并且進一步地,在本發(fā)明實施例中,利用專門的服務(wù)器進行低內(nèi)存化處理,可以使得處理更加高效。
圖6是根據(jù)本發(fā)明實施例的服務(wù)器400的示意性框圖。如圖6所示,該服務(wù)器400包括確定單元410、處理單元420和發(fā)送單元430。
其中,確定單元410,用于確定需要向終端設(shè)備推送的推送對象以及所述終端設(shè)備對所述推送對象的內(nèi)存占用要求;
處理單元420,用于根據(jù)所述內(nèi)存占用要求,對所述推送對象進行處理;
發(fā)送單元430,用于向所述終端設(shè)備推送處理后的所述推送對象。
可選地,所述處理單元420進一步用于:
對所述推送對象所占用的內(nèi)存大小進行估算;
在所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存占用要求時,對所述推送對象進行處理,使得處理后的所述推送對象占用的內(nèi)存大小滿足所述內(nèi)存占用要求。
可選地,如圖6所示,所述服務(wù)器400還包括接收單元440,用于:接收第二服務(wù)器發(fā)送的重定向消息,所述重定向消息用于指示向所述終端設(shè)備推送的所述推送對象和用于指示所述內(nèi)存占用要求;
所述確定單元410進一步用于:
根據(jù)所述重定向消息,確定需要向所述終端設(shè)備推送的所述推送對象以及所述終端設(shè)備對所述推送對象的所述內(nèi)存占用要求。
可選地,如圖6所示,所述服務(wù)器400還包括接收單元440,用于:接收所述終端設(shè)備發(fā)送的請求消息,所述請求消息用于指示請求向所述終端設(shè)備推送的所述推送對象和用于指示所述內(nèi)存占用要求;
所述確定單元410進一步用于:
根據(jù)所述請求消息,確定需要向所述終端設(shè)備推送的所述推送對象以及所述終端設(shè)備對所述推送對象的所述內(nèi)存占用要求。
可選地,所述處理單元420進一步用于:
對所述推送對象進行以下處理中的至少一種:
不相關(guān)內(nèi)容的過濾處理、圖片處理、富媒體鏈接去除處理和對象中的分塊的去除處理。
可選地,所述處理單元420進一步用于:
按照預(yù)定處理順序?qū)λ鐾扑蛯ο筮M行處理:
不相關(guān)內(nèi)容的過濾處理、圖片處理、富媒體鏈接去除處理和對象中的分塊的去除處理;
其中,在利用當(dāng)前處理方式對所述推送對象進行處理后,如果處理后的所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存要求時,則繼續(xù)進行下一處理方式的處理,否則停止對所述推送對象的處理。
可選地,所述圖片處理包括圖片去除處理或圖片質(zhì)量降低處理;
所述處理單元420進一步用于:
確定在去除所述推送對象中的全部圖片時,所述推送對象所占用的內(nèi)存大小是否滿足所述內(nèi)存占用要求;
如果滿足,則對所述推送對象進行圖片質(zhì)量降低處理;
如果不能滿足,則對所述推送對象進行圖片去除處理。
可選地,所述推送對象包括多個分塊;
所述處理單元420進一步用于:
根據(jù)所述多個分塊的優(yōu)先級,在對當(dāng)前分塊進行處理后,如果所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存要求時,則繼續(xù)進行下一分塊的處理,否則停止對所述推送對象的處理。
可選地,所述推送對象為網(wǎng)頁或圖形界面。
應(yīng)理解,該服務(wù)器400可以為方法實施例提到的第一服務(wù)器,可以執(zhí)行該第一服務(wù)器執(zhí)行的相應(yīng)操作,為了簡潔,在此不再贅述。
圖7是根據(jù)本發(fā)明實施例的終端設(shè)備500的示意性框圖。如圖7所示,該終端設(shè)備500包括:
發(fā)送單元510,用于向第一服務(wù)器發(fā)送請求消息,所述請求消息用于指示請求向所述終端設(shè)備推送的推送對象和用于指示所述終端設(shè)備對所述推送對象的內(nèi)存占用要求;
接收單元520,用于接收所述第一服務(wù)器或第二服務(wù)器發(fā)送的按照所述內(nèi)存占用要求處理后的所述推送對象。
可選地,所述推送對象為網(wǎng)頁或圖形界面。
應(yīng)理解,該終端設(shè)備500可以為方法實施例提到的終端設(shè)備,可以執(zhí)行該終端設(shè)備執(zhí)行的相應(yīng)操作,為了簡潔,在此不再贅述。
圖8是根據(jù)本發(fā)明實施例的服務(wù)器600的示意性框圖。如圖8所示,該服務(wù)器600可以包括:接收單元610、估算單元620和發(fā)送單元630。
接收單元610,用于接收終端設(shè)備發(fā)送的請求消息,所述請求消息用于指示請求向所述終端設(shè)備推送的推送對象和用于指示所述終端設(shè)備對所述推送對象的內(nèi)存占用要求;
估算單元620,用于對所述推送對象所占用的內(nèi)存大小進行估算;
發(fā)送單元630,用于在所述推送對象所占用的內(nèi)存大小不能滿足所述內(nèi)存占用要求時,向第一服務(wù)器發(fā)送重定向消息,所述重定向消息用于指示向所述終端設(shè)備推送的所述推送對象和用于指示所述內(nèi)存占用要求。
可選地,所述推送對象為網(wǎng)頁或圖形界面。
應(yīng)理解,該服務(wù)器600可以為方法實施例提到的第二服務(wù)器,可以執(zhí)行該第二服務(wù)器執(zhí)行的相應(yīng)操作,為了簡潔,在此不再贅述。
圖9示出了本發(fā)明實施例提供的通信裝置700的示意性框圖,該通信裝置700包括:
存儲器710,用于存儲程序;
收發(fā)器720,用于和其他設(shè)備進行通信;
處理器730,用于執(zhí)行存儲器710中的程序。
可選地,當(dāng)該代碼被執(zhí)行時,該處理器730可以實現(xiàn)方法中第一服務(wù)器執(zhí)行各個操作,為了簡潔,在此不再贅述。此時,通信裝置700可以為服務(wù)器。
可選地,當(dāng)該代碼被執(zhí)行時,該處理器730可以實現(xiàn)方法中終端設(shè)備執(zhí)行各個操作,為了簡潔,在此不再贅述。此時,通信裝置700可以為終端設(shè)備。
可選地,當(dāng)該代碼被執(zhí)行時,該處理器730可以實現(xiàn)方法中第二服務(wù)器執(zhí)行各個操作,為了簡潔,在此不再贅述。此時,通信裝置700可以為服務(wù)器。
應(yīng)理解,在本發(fā)明實施例中,該處理器730可以是中央處理單元(Central Processing Unit,簡稱為“CPU”),該處理器730還可以是其他通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
該存儲器710可以包括只讀存儲器和隨機存取存儲器,并向處理器530提供指令和數(shù)據(jù)。存儲器710的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器710還可以存儲設(shè)備類型的信息。
在實現(xiàn)過程中,上述方法的各步驟可以通過處理器730中的硬件的集成邏輯電路或者軟件形式的指令完成。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器,處理器730讀取存儲器中的信息,結(jié)合其硬件完成上述方法的步驟。為避免重復(fù),這里不再詳細描述。
應(yīng)理解,在本發(fā)明的各種實施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在本發(fā)明所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準(zhǔn)。