本公開涉及互聯(lián)網(wǎng)應用領域,尤其涉及一種web應用的遷移方法及裝置。
背景技術:
隨著互聯(lián)網(wǎng)的普及,涌現(xiàn)了大量的web應用。其中,web應用是一種可以通過web訪問的應用程序。web應用的模式為b/s模式,即瀏覽器端/服務器端模式。只需要一個瀏覽器而不需要用戶再安裝其它軟件就能夠訪問web應用。
對于傳統(tǒng)的web應用,網(wǎng)頁和網(wǎng)頁之間相互鏈接,網(wǎng)頁之間的跳轉(zhuǎn)會導致瀏覽器刷新網(wǎng)頁的整個頁面。隨著互聯(lián)網(wǎng)技術的演進,開始出現(xiàn)局部刷新的交互方式。其中,局部刷新是一種只刷新網(wǎng)頁的一部分內(nèi)容而不刷新網(wǎng)頁的全部內(nèi)容的交互方式。局部刷新的交互方式不會導致瀏覽器刷新網(wǎng)頁的整個頁面。
對于使用局部刷新的交互方式所創(chuàng)建的web應用,網(wǎng)頁的頁面內(nèi)容動態(tài)更新,不會導致瀏覽器刷新網(wǎng)頁的整個頁面,因此更快、交互性更強且更友好,因而更受用戶的歡迎。
然而,如何將傳統(tǒng)的web應用遷移為局部刷新的web應用成為一個難題。
相關技術中,需要重寫web應用的實現(xiàn)代碼以實現(xiàn)局部刷新的web應用。該技術等同于對傳統(tǒng)的web應用進行代碼重構,其存在重構難度大、遷移工作量大、需要投入大量的人力、時間和資金等。另外,投入的成本與收益也不匹配。
技術實現(xiàn)要素:
為克服相關技術中存在的問題,本公開提供一種web應用的遷移方法及裝置。
根據(jù)本公開的一方面,提供了一種web應用的遷移方法,該方法包括:
基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,所述框架頁包括內(nèi)容區(qū)域,所述內(nèi)容區(qū)域包括用于引用所述舊web應用的頁面的標簽;
在存在更新所述內(nèi)容區(qū)域的請求的情況下,改變所述標簽的源文件屬性以使所述內(nèi)容區(qū)域顯示與所述請求相對應的舊web應用的頁面,并且隱藏所述舊web應用的頁面中的除所述內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域。
在一種可能的實現(xiàn)方式中,所述更新所述內(nèi)容區(qū)域的請求是響應于對所述框架頁上的導航控件的觸發(fā)操作而生成的,
其中,響應于更新所述內(nèi)容區(qū)域的請求,改變所述標簽的源文件屬性,包括:
響應于對所述導航控件的觸發(fā),將與被觸發(fā)的導航控件相對應的舊web應用的頁面的地址作為第一函數(shù)的輸入;
根據(jù)所述第一函數(shù)的輸入改變所述標簽的源文件屬性。
在一種可能的實現(xiàn)方式中,
在所述框架頁包括至少一個第一導航控件和至少一個第二導航控件的情況下,所述被觸發(fā)的導航控件是所述至少一個第一導航控件和所述至少一個第二導航控件中的任一個導航控件,
其中,所述至少一個第二導航控件中的每一個第二導航控件與所述至少一個第一導航控件中的一個或多個第一導航控件相關聯(lián),并且響應于對所述至少一個第二導航控件中的一個第二導航控件的觸發(fā),顯示與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件而隱藏除與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件以外的第一導航控件。
在一種可能的實現(xiàn)方式中,該方法還包括:
在用戶通過瀏覽器訪問所述舊web應用的頁面的情況下,顯示所述舊web應用的頁面的整個區(qū)域。
在一種可能的實現(xiàn)方式中,在用戶通過瀏覽器訪問所述舊web應用的頁面的情況下,隱藏所述舊web應用的頁面中的除所述內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域,包括:
在存在更新所述內(nèi)容區(qū)域的請求的情況下,在所述非內(nèi)容區(qū)域以外的區(qū)域引用用于隱藏所述非內(nèi)容區(qū)域的層疊樣式表。
根據(jù)本公開的另一方面,提供了一種web應用的遷移裝置,包括:
生成模塊,用于基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,所述框架頁包括內(nèi)容區(qū)域,所述內(nèi)容區(qū)域包括用于引用所述舊web應用的頁面的標簽;
顯示控制模塊,與所述生成模塊連接,用于在存在更新所述內(nèi)容區(qū)域的請求的情況下,改變所述標簽的源文件屬性以使所述內(nèi)容區(qū)域顯示與所述請求相對應的舊web應用的頁面,并且隱藏所述舊web應用的頁面中的除所述內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域。
在一種可能的實現(xiàn)方式中,所述更新所述內(nèi)容區(qū)域的請求是響應于對所述框架頁上的導航控件的觸發(fā)操作而生成的,
其中,所述顯示控制模塊被配置為:
響應于對所述導航控件的觸發(fā),將與被觸發(fā)的導航控件相對應的舊web應用的頁面的地址作為第一函數(shù)的輸入;
根據(jù)所述第一函數(shù)的輸入改變所述標簽的源文件屬性。
在一種可能的實現(xiàn)方式中,
在所述框架頁包括至少一個第一導航控件和至少一個第二導航控件的情況下,所述被觸發(fā)的導航控件是所述至少一個第一導航控件和所述至少一個第二導航控件中的任一個導航控件,其中,所述至少一個第二導航控件中的每一個第二導航控件與所述至少一個第一導航控件中的一個或多個第一導航控件相關聯(lián),
所述裝置還包括導航控制模塊,所述導航控制模塊用于響應于對所述至少一個第二導航控件中的一個第二導航控件的觸發(fā),顯示與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件而隱藏除與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件以外的第一導航控件。
在一種可能的實現(xiàn)方式中,所述顯示控制模塊被配置為:
在用戶通過瀏覽器訪問所述舊web應用的頁面的情況下,顯示所述舊web應用的頁面的整個區(qū)域。
在一種可能的實現(xiàn)方式中,所述顯示控制模塊被配置為:
在存在更新所述內(nèi)容區(qū)域的請求的情況下,在所述非內(nèi)容區(qū)域引用用于隱藏所述非內(nèi)容區(qū)域的層疊樣式表。
根據(jù)本公開的又一方面,提供了一種web應用的遷移裝置,包括:處理器;用于存儲處理器可執(zhí)行指令的存儲器;其中,所述處理器被配置為執(zhí)行上述方法。
根據(jù)本公開的再一方面,提供了一種非易失性計算機可讀存儲介質(zhì),當所述存儲介質(zhì)中的指令由終端和/或服務器的處理器執(zhí)行時,使得終端和/或服務器能夠執(zhí)行上述方法。
本公開基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,在存在更新框架頁的內(nèi)容區(qū)域的請求的情況下,改變該內(nèi)容區(qū)域的標簽的源文件屬性,以使該內(nèi)容區(qū)域顯示與該請求相對應的舊web應用的頁面,并且隱藏舊web應用的頁面中的除內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域,例如舊web應用的頁面的產(chǎn)品logo和導航區(qū)域,由此,能夠快速地將舊web應用遷移為能夠局部刷新的新web應用,并且可以避免舊web應用的框架與新web應用的框架相互嵌套。
并且,通過重用舊web應用的頁面的結(jié)構來實現(xiàn)將傳統(tǒng)web應用(舊web應用)遷移為局部刷新web應用(新web應用),由此,可以避免對傳統(tǒng)web應用做大量的代碼重構,降低了遷移難度和遷移工作量,減少了遷移所需的人力、時間和資金成本。
另外,由于重用舊web應用的頁面的結(jié)構,因此可以在實現(xiàn)局部刷新遷移的同時,web應用的頁面的結(jié)構(界面風格)可以保持不變。
進一步地,可以響應于導航控件例如第一導航控件或第二導航控件的觸發(fā)來控制內(nèi)容區(qū)域的顯示。
進一步地,可以響應于對第二導航控件例如上導航的觸發(fā)來僅顯示與該第二導航控件相關聯(lián)的第一導航控件,而隱藏除該第一導航控件以外的其它第一導航控件,由此,第一導航控件能夠隨著被觸發(fā)的第二導航控件的變化而變化。
進一步地,在用戶通過瀏覽器訪問舊web應用的頁面的情況下,可以顯示舊web應用的頁面的整個區(qū)域,例如舊web應用的頁面的產(chǎn)品logo和導航區(qū)域,由此,可以在不需要對舊web應用的頁面進行遷移時,可以保持完整的舊web應用的頁面。
根據(jù)下面參考附圖對示例性實施例的詳細說明,本公開的其它特征及方面將變得清楚。
附圖說明
包含在說明書中并且構成說明書的一部分的附圖與說明書一起示出了本公開的示例性實施例、特征和方面,并且用于解釋本公開的原理。
圖1a是根據(jù)一示例性實施例示出的一種web應用的遷移方法的流程圖。
圖1b是根據(jù)一示例性實施例示出的一種舊web應用的頁面示意圖。
圖2是根據(jù)一示例性實施例示出的一種web應用的遷移方法的一個示例的流程圖。
圖3a是根據(jù)一示例性實施例示出的一種web應用的遷移方法的一個示例的流程圖。
圖3b是根據(jù)一示例性實施例示出的web應用的頁面示意圖。
圖4是根據(jù)一示例性實施例示出的一種web應用的遷移裝置的結(jié)構框圖。
圖5是根據(jù)一示例性實施例示出的一種web應用的遷移裝置的一個示例的結(jié)構框圖。
圖6是根據(jù)一示例性實施例示出的一種用于web應用的遷移的裝置1900的框圖。
具體實施方式
以下將參考附圖詳細說明本公開的各種示例性實施例、特征和方面。附圖中相同的附圖標記表示功能相同或相似的元件。盡管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪制附圖。
在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優(yōu)于或好于其它實施例。
另外,為了更好的說明本公開,在下文的具體實施方式中給出了眾多的具體細節(jié)。本領域技術人員應當理解,沒有某些具體細節(jié),本公開同樣可以實施。在一些實例中,對于本領域技術人員熟知的方法、手段、元件和電路未作詳細描述,以便于凸顯本公開的主旨。
可選的,在將傳統(tǒng)的web應用(舊web應用)遷移為局部刷新的web應用(新web應用)時,可以采用本公開所提供的遷移方法,其中,對于傳統(tǒng)的web應用,網(wǎng)頁和網(wǎng)頁之間相互鏈接,網(wǎng)頁之間的跳轉(zhuǎn)會導致瀏覽器刷新網(wǎng)頁的整個頁面,局部刷新是一種只刷新網(wǎng)頁的一部分內(nèi)容而不刷新網(wǎng)頁的全部內(nèi)容的交互方式。
圖1a是根據(jù)一示例性實施例示出的一種web應用的遷移方法的流程圖。如圖1a所示,該遷移方法可以包括以下步驟。
在步驟s110中,可以基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,該框架頁可以包括內(nèi)容區(qū)域,該內(nèi)容區(qū)域可以包括用于引用該舊web應用的頁面的標簽。
可選的,web應用通??梢允侵讣虞d在web應用框架中的各類應用程序,加載的web應用可以用于實現(xiàn)多種不同的功能。其中,web應用的頁面的結(jié)構可以包括多種類型,例如,一種類型的web應用的頁面的結(jié)構可以由上導航和內(nèi)容區(qū)域組成。又如,一種類型的web應用的頁面的結(jié)構可以由左導航、右導航和內(nèi)容區(qū)域組成。可選的,該內(nèi)容區(qū)域可以是用于顯示例如頁面正文內(nèi)容、標題等內(nèi)容的區(qū)域??蛇x的,該非內(nèi)容區(qū)域可以是用于顯示例如上導航、左導航、右導航、產(chǎn)品logo等內(nèi)容的區(qū)域。
舉例而言,圖1b是根據(jù)一示例性實施例示出的一種舊web應用的頁面示意圖,如圖1b所示,該舊web應用的頁面的結(jié)構可以由導航區(qū)域和內(nèi)容區(qū)域組成,該導航區(qū)域可以包括上導航和左導航,該導航區(qū)域可以位于上述非內(nèi)容區(qū)域。其中,上導航可以包括web應用logo、導航1、導航2和導航3,左導航可以包括左導航1、左導航2和左導航3,這些導航可以鏈接二級頁面,在用戶通過諸如點擊等方式觸發(fā)了這些導航中的任意一個導航時,當前顯示的頁面會切換為該被觸發(fā)的導航所鏈接的二級頁面。
可選的,在將舊web應用遷移為局部刷新web應用時,可以重用舊web應用的頁面的結(jié)構來生成一個框架頁,以將該框架頁作為局部刷新web應用即新web應用的頁面的訪問入口,由此,用戶可以通過該框架頁來訪問新web應用的頁面??蛇x的,該框架頁可以包括內(nèi)容區(qū)域,該內(nèi)容區(qū)域可以由一個超文本標記語言(英文:hypertextmarkuplanguage,簡稱:html)標簽iframe組成,可以填充整個內(nèi)容區(qū)域,該標簽的作用是引用舊web應用的頁面。換言之,在框架頁的內(nèi)容區(qū)域,使用標簽可以直接引用舊web應用的頁面(例如網(wǎng)頁),以重用該頁面。
其中,html可以定義多種數(shù)據(jù)類型的元素內(nèi)容,例如腳本數(shù)據(jù)和樣式表的數(shù)據(jù),可以包括統(tǒng)一資源定位符(英文:universalresourcelocation,簡稱:url)、數(shù)字、長度單位、語言、顏色、日期和時間等。url是internet上用于描述信息資源的字符串,例如web應用的頁面的地址,在瀏覽器中輸入url可以訪問web應用的頁面。url可以是相對的,也可以是絕對的,相對地址可以不包括web應用的協(xié)議類型、主機地址和端口號,絕對地址可以包括web應用的協(xié)議類型、主機地址、端口號和相對地址。
舉例而言,假設圖1b所示的web應用為舊web應用,則可以重用圖1b所示的web應用的頁面的結(jié)構來做一個框架頁,例如,新web應用的頁面的框架可以與該舊web應用的頁面的框架相同,通過該框架頁的內(nèi)容區(qū)域的標簽,新web應用可以引用圖1b所示的web應用的頁面,換言之,新web應用可以通過標簽將圖1b所示的web應用的頁面顯示于該新web應用的內(nèi)容區(qū)域,例如,新web應用可以通過標簽將圖1b所示的web應用的頁面中的任意一個導航所鏈接的二級頁面顯示于該新web應用的內(nèi)容區(qū)域。
在步驟s130中,在存在更新內(nèi)容區(qū)域的請求的情況下,可以改變標簽的源文件屬性以使內(nèi)容區(qū)域顯示與該請求相對應的舊web應用的頁面,并且隱藏該舊web應用的頁面中的除該內(nèi)容區(qū)域以外的區(qū)域。
舉例而言,響應于更新新web應用的內(nèi)容區(qū)域的請求,可以在將與該請求相對應的舊web應用的一個二級頁面顯示于新web應用的內(nèi)容區(qū)域的同時,隱藏舊web應用的頁面中的導航區(qū)域和產(chǎn)品logo。這樣,可以避免舊web應用的框架與新web應用的框架相互嵌套。
可選的,標簽的源文件屬性即src屬性表示源文件(所引用的文件)的路徑,例如,圖1b所示的舊web應用的頁面中的任意一個導航所鏈接的二級頁面的地址,也就是說,src屬性的值是源文件的url、即源文件的絕對地址或相對地址。例如,<imgsrc="路徑"/>表示一張圖片的路徑??蛇x的,源文件屬性可以是舊web應用的頁面的絕對地址或相對地址。
在一種可能的實現(xiàn)方式中,該更新內(nèi)容區(qū)域的請求可以是響應于對框架頁上的導航控件的觸發(fā)操作而生成的。
舉例而言,假設圖1b所示的web應用為舊web應用,重用圖1b所示的web應用的頁面的結(jié)構來為新web應用做一個框架頁,該框架頁可以包括左導航1,則可以響應于對左導航1的觸發(fā)操作例如點擊操作來刷新內(nèi)容區(qū)域,而不刷新圖1b所示的web應用的整個頁面,即,可以響應于對左導航1的點擊來將左導航1所鏈接的二級頁面顯示于新web應用的內(nèi)容區(qū)域,同時,可以隱藏圖1b所示的web應用的頁面的導航區(qū)域和產(chǎn)品logo。
在一種可能的實現(xiàn)方式中,在存在更新內(nèi)容區(qū)域的請求的情況下,隱藏舊web應用的頁面中的除內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域,可以包括:在存在更新內(nèi)容區(qū)域的請求的情況下,在該非內(nèi)容區(qū)域引用用于隱藏該非內(nèi)容區(qū)域的層疊樣式表例如css文件。
可選的,可以對舊web應用的頁面(應用界面)做處理,處理原則可以是:可以不改動舊web應用的頁面的結(jié)構,只控制該頁面的結(jié)構的顯示,例如,在存在更新內(nèi)容區(qū)域的請求的情況下,可以僅顯示內(nèi)容區(qū)域而隱藏舊web應用的頁面的除內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域例如導航區(qū)域和產(chǎn)品logo,由此,可以避免舊web應用的頁面的框架與新web應用的頁面的框架相互嵌套。
可選的,處理方法可以為在舊web應用的頁面的公共頁面(例如,將舊web應用的導航區(qū)域和產(chǎn)品logo做一個公共頁面,該公共頁面可以被其它頁面例如二級頁面引用)里引用層疊樣式表例如css文件,該css文件包括一個公共樣式,作用是隱藏舊web應用的頁面的導航區(qū)域和產(chǎn)品logo,以保證舊web應用的頁面僅顯示內(nèi)容區(qū)域。舉例而言,舊web應用的頁面可以統(tǒng)一引用該css文件,由此,響應于對框架頁上的導航控件的點擊,可以僅顯示舊web應用的頁面的內(nèi)容區(qū)域。
上述css文件的偽碼示例為:
#topnav,#leftnav{display:none;}//隱藏舊頁面的上導航和左導航
在一種可能的實現(xiàn)方式中,在用戶通過瀏覽器訪問舊web應用的頁面的情況下,顯示舊web應用的頁面的整個區(qū)域。
可選的,在用戶通過瀏覽器訪問舊web應用的頁面、即該舊web應用的頁面沒有被新web應用的頁面的框架頁引用的情況下,可以顯示舊web應用的頁面的所有內(nèi)容例如導航區(qū)域、產(chǎn)品logo和內(nèi)容區(qū)域,由此,在舊web應用的頁面沒有被新web應用的頁面的框架頁引用時,可以保證舊web應用的頁面的完整性,即可以完整展示(顯示)舊web應用的頁面。
其中,可以通過判斷是否觸發(fā)了框架頁上的導航控件來判斷是否存在更新內(nèi)容區(qū)域的請求。如上所述的,在觸發(fā)了框架頁上的導航控件時,該導航控件所鏈接的二級頁面被引用,并且,舊web應用的頂級頁面不被新web應用的內(nèi)容區(qū)域的標簽引用,然而,舊web應用的除頂級頁面以外的其它頁面可以被新web應用的內(nèi)容區(qū)域的標簽引用。因此,也可以通過判斷當前頁面是否是頂級頁面來判斷是否存在更新內(nèi)容區(qū)域的請求。具言之,如果當前頁面不是頂級頁面,則可以判斷為該頁面被引用,否則,該頁面沒有被引用。
舉例而言,可以在舊web應用的頁面統(tǒng)一引用公共腳本文件d,公共腳本文件d的作用是判斷當前頁面是否被新web應用的內(nèi)容區(qū)域的標簽引用,如果當前頁面被標簽引用,則可以判斷為存在更新內(nèi)容區(qū)域的請求,可以在當前頁面上引用上述css文件以隱藏舊web應用的頁面的導航區(qū)域和產(chǎn)品logo;否則,可以不進行上述隱藏動作、即可以顯示舊web應用的頁面的導航區(qū)域和產(chǎn)品logo。
上述公共腳本文件d的偽碼示例為:
這樣,基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,在存在更新框架頁的內(nèi)容區(qū)域的請求的情況下,改變該內(nèi)容區(qū)域的標簽的源文件屬性,以使該內(nèi)容區(qū)域顯示與該請求相對應的舊web應用的頁面,并且隱藏舊web應用的頁面中的除內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域,例如舊web應用的頁面的產(chǎn)品logo和導航區(qū)域,由此,能夠快速地將舊web應用遷移為能夠局部刷新的新web應用,并且可以避免舊web應用的框架與新web應用的框架相互嵌套。
并且,通過重用舊web應用的頁面的結(jié)構來實現(xiàn)將傳統(tǒng)web應用(舊web應用)遷移為局部刷新web應用(新web應用),由此,可以避免對傳統(tǒng)web應用做大量的代碼重構,降低了遷移難度和遷移工作量,減少了遷移所需的人力、時間和資金成本。
另外,由于重用舊web應用的頁面的結(jié)構,因此可以在實現(xiàn)局部刷新遷移的同時,web應用的頁面的結(jié)構(界面風格)可以保持不變。
圖2是根據(jù)一示例性實施例示出的一種web應用的遷移方法的一個示例的流程圖。如圖2所示,在一種可能的實施方式中,該遷移方法可以包括以下步驟。
在步驟s210中,響應于對導航控件例如第一導航控件(例如左導航)或第二導航控件(例如上導航)的觸發(fā),可以與被觸發(fā)的導航控件相對應的舊web應用的頁面的地址作為第一函數(shù)的輸入。
在步驟s230中,可以根據(jù)第一函數(shù)的輸入改變標簽的源文件屬性。
可選的,可以在框架頁上增加第一函數(shù),第一函數(shù)可以接受至少一個輸入例如參數(shù)url,在第一函數(shù)被調(diào)用時,可以根據(jù)第一函數(shù)的輸入來動態(tài)改變內(nèi)容區(qū)域的標簽的源文件屬性。
可選的,第一函數(shù)可以為javascript函數(shù)b。javascript是一種腳本語言,可以直接運行在瀏覽器上,以改變web應用的網(wǎng)頁(頁面)的結(jié)構。以下為javascript函數(shù)b的偽碼示例。
舉例而言,假設圖1b所示的web應用為舊web應用,則可以響應于對左導航1的點擊,將左導航1所鏈接的舊web應用的二級頁面的url作為第一函數(shù)的輸入,調(diào)用該第一函數(shù)可以使得內(nèi)容區(qū)域所顯示的頁面為與該url相對應的頁面即該二級頁面。又如,可以響應于對上導航1的點擊,將上導航1所鏈接的舊web應用的二級頁面的url作為第一函數(shù)的輸入,調(diào)用該第一函數(shù)可以使得內(nèi)容區(qū)域所顯示的頁面為上導航1所鏈接的舊web應用的二級頁面。
由此,可以響應于導航控件例如第一導航控件或第二導航控件的觸發(fā)來控制內(nèi)容區(qū)域的顯示,可以保證在不刷新整個頁面的情況下動態(tài)更新內(nèi)容區(qū)域。
圖3a是根據(jù)一示例性實施例示出的一種web應用的遷移方法的一個示例的流程圖。如圖3a所示,在一種可能的實施方式中,在上述框架頁包括至少一個第一導航控件和至少一個第二導航控件的情況下,被觸發(fā)的導航控件可以是至少一個第一導航控件和至少一個第二導航控件中的任一個導航控件,其中,該至少一個第二導航控件中的每一個第二導航控件可以與該至少一個第一導航控件中的一個或多個第一導航控件相關聯(lián)。該遷移方法可以包括以下步驟。
在步驟s310中,響應于對至少一個第二導航控件中的一個第二導航控件的觸發(fā),可以顯示與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件而隱藏除與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件以外的第一導航控件。
舉例而言,圖1b所示的舊web應用的頁面的導航區(qū)域包括左導航1、左導航2和左導航3這三個第一導航控件以及上導航1、上導航2和上導航3這三個第二導航控件,左導航1、左導航2和左導航3分別與上導航1、上導航2和上導航3相關聯(lián)。
可選的,新web應用的頁面的框架頁可以包括內(nèi)容區(qū)域、至少一個第一導航控件和至少一個第二導航控件,其中,一個第二導航控件例如上導航可以與一個第一導航控件例如左導航相關聯(lián),第二導航控件一般不發(fā)生變化??蛇x的,左導航可以跟隨上導航的變化而變化,框架頁可以包括多個左導航和多個上導航,可以默認僅顯示一個左導航,當點擊一個上導航時,可以使用腳本語言來控制選擇顯示哪一個左導航。
可選的,可以在框架頁上增加第二函數(shù),可以響應于點擊第二導航控件來調(diào)用第二函數(shù),并且在第二函數(shù)被調(diào)用時,可以僅顯示與第二導航控件相關聯(lián)的第一導航控件并且隱藏除與被點擊的第二導航控件相關聯(lián)的第一導航控件以外的其它第一導航控件、即隱藏不與該被點擊的第二導航控件相關聯(lián)的第一導航控件。可選的,第二函數(shù)可以為javascript函數(shù)b1。以下為javascript函數(shù)b1的偽碼示例。
舉例而言,假設圖1b所示的web應用為舊web應用,在圖1b中的導航1被點擊的情況下,當前頁面切換為圖3b示出的web應用的頁面示意圖,假設導航1與左導航1相關聯(lián)、導航2與左導航2相關聯(lián)、導航3與左導航3相關聯(lián),則可以響應于點擊導航1來刷新頁面,左導航和內(nèi)容區(qū)域發(fā)生變化,其中,當前頁面上的左導航由圖1b中示出全部左導航改變?yōu)閮H顯示左導航1而隱藏左導航2和左導航3,相應地,也可以響應于點擊導航2來僅顯示左導航2而隱藏左導航1和左導航3,可以響應于點擊導航3來僅顯示左導航3而隱藏左導航1和左導航2。當然,可以響應于點擊左導航1來將圖3b所示的內(nèi)容區(qū)域改變?yōu)樽髮Ш?所鏈接的二級頁面。
由此,響應于對第二導航控件例如上導航的觸發(fā),僅顯示與該被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件,而隱藏除該第一導航控件以外的其它第一導航控件,由此,第一導航控件能夠隨著被觸發(fā)的第二導航控件的變化而變化。
需要說明的是,本公開的示例性實施例中可以先執(zhí)行步驟s110和步驟s130以改變內(nèi)容區(qū)域所顯示的頁面,然后執(zhí)行步驟s310以控制第一導航控件的顯示。也可以按照步驟s110、步驟s310、與步驟s130的順序執(zhí)行,本公開不限制步驟s130和步驟s310之間的時序關系。
圖4是根據(jù)一示例性實施例示出的一種web應用的遷移裝置400的結(jié)構框圖。參照圖4,該web應用的遷移裝置400可以包括:生成模塊410和顯示控制模塊430。其中,該生成模塊410可以用于基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,該框架頁可以包括內(nèi)容區(qū)域,該內(nèi)容區(qū)域可以包括用于引用該舊web應用的頁面的標簽。該顯示控制模塊430可以與該生成模塊410連接,并且可以用于在存在更新該內(nèi)容區(qū)域的請求的情況下,改變該標簽的源文件屬性以使該內(nèi)容區(qū)域顯示與該請求相對應的舊web應用的頁面,并且隱藏該舊web應用的頁面中的除該內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域。
在一種可能的實施方式中,更新該內(nèi)容區(qū)域的請求是響應于對該框架頁上的導航控件的觸發(fā)操作而生成的,其中,該顯示控制模塊430可以被配置為:響應于對導航控件的觸發(fā),將與被觸發(fā)的導航控件相對應的舊web應用的頁面的地址作為第一函數(shù)的輸入;根據(jù)第一函數(shù)的輸入改變標簽的源文件屬性。
在一種可能的實施方式中,該顯示控制模塊430可以被配置為:在用戶通過瀏覽器訪問舊web應用的頁面的情況下,顯示舊web應用的頁面的整個區(qū)域。
在一種可能的實施方式中,該顯示控制模塊430可以被配置為:在存在更新內(nèi)容區(qū)域的請求的情況下,在非內(nèi)容區(qū)域引用用于隱藏該非內(nèi)容區(qū)域的層疊樣式表。
圖5是根據(jù)一示例性實施例示出的一種web應用的遷移裝置500的結(jié)構框圖。參照圖5,在一種可能的實施方式中,該web應用的遷移裝置500可以包括:生成模塊410、顯示控制模塊430、導航控制模塊550。其中,導航控制模塊550可以用于響應于對至少一個第二導航控件中的一個第二導航控件的觸發(fā),顯示與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件而隱藏除與被觸發(fā)的第二導航控件相關聯(lián)的第一導航控件以外的第一導航控件。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本公開的遷移裝置基于舊web應用的頁面的結(jié)構來生成作為新web應用的頁面的訪問入口的框架頁,在存在更新框架頁的內(nèi)容區(qū)域的請求的情況下,改變該內(nèi)容區(qū)域的標簽的源文件屬性,以使該內(nèi)容區(qū)域顯示與該請求相對應的舊web應用的頁面,并且隱藏舊web應用的頁面中的除內(nèi)容區(qū)域以外的非內(nèi)容區(qū)域,例如舊web應用的頁面的產(chǎn)品logo和導航區(qū)域,由此,能夠快速地將舊web應用遷移為能夠局部刷新的新web應用,并且可以避免舊web應用的框架與新web應用的框架相互嵌套。
并且,通過重用舊web應用的頁面的結(jié)構來實現(xiàn)將傳統(tǒng)web應用(舊web應用)遷移為局部刷新web應用(新web應用),由此,可以避免對傳統(tǒng)web應用做大量的代碼重構,降低了遷移難度和遷移工作量,減少了遷移所需的人力、時間和資金成本。
另外,由于重用舊web應用的頁面的結(jié)構,因此可以在實現(xiàn)局部刷新遷移的同時,web應用的頁面的結(jié)構(界面風格)可以保持不變。此外,可以響應于導航控件例如第一導航控件或第二導航控件的觸發(fā)來控制內(nèi)容區(qū)域的顯示,可以響應于對第二導航控件例如上導航的觸發(fā)來僅顯示與該第二導航控件相關聯(lián)的第一導航控件,而隱藏除該第一導航控件以外的其它第一導航控件,由此,第一導航控件能夠隨著被觸發(fā)的第二導航控件的變化而變化。
再者,在用戶通過瀏覽器訪問舊web應用的頁面的情況下,可以顯示舊web應用的頁面中的除該內(nèi)容區(qū)域以外的區(qū)域,例如舊web應用的頁面的產(chǎn)品logo和導航區(qū)域,由此,可以在不需要對舊web應用的頁面進行遷移時,可以保持完整的舊web應用的頁面。
圖6是根據(jù)一示例性實施例示出的一種用于web應用的遷移的裝置1900的框圖。例如,裝置1900可以被提供為一服務器。參照圖6,裝置1900包括處理組件1922,其進一步包括一個或多個處理器,以及由存儲器1932所代表的存儲器資源,用于存儲可由處理組件1922的執(zhí)行的指令,例如應用程序。存儲器1932中存儲的應用程序可以包括一個或一個以上的每一個對應于一組指令的模塊。此外,處理組件1922被配置為執(zhí)行指令,以執(zhí)行上述方法。
裝置1900還可以包括一個電源組件1926被配置為執(zhí)行裝置1900的電源管理,一個有線或無線網(wǎng)絡接口1950被配置為將裝置1900連接到網(wǎng)絡,和一個輸入輸出(i/o)接口1958。裝置1900可以操作基于存儲在存儲器1932的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或類似。
在示例性實施例中,還提供了一種包括指令的非易失性計算機可讀存儲介質(zhì),例如包括指令的存儲器1932,上述指令可由裝置1900的處理組件1922執(zhí)行以完成上述方法。
本公開可以是系統(tǒng)、方法和/或計算機程序產(chǎn)品。計算機程序產(chǎn)品可以包括計算機可讀存儲介質(zhì),其上載有用于使處理器實現(xiàn)本公開的各個方面的計算機可讀程序指令。
計算機可讀存儲介質(zhì)可以是可以保持和存儲由指令執(zhí)行設備使用的指令的有形設備。計算機可讀存儲介質(zhì)例如可以是――但不限于――電存儲設備、磁存儲設備、光存儲設備、電磁存儲設備、半導體存儲設備或者上述的任意合適的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦式可編程只讀存儲器(eprom或閃存)、靜態(tài)隨機存取存儲器(sram)、便攜式壓縮盤只讀存儲器(cd-rom)、數(shù)字多功能盤(dvd)、記憶棒、軟盤、機械編碼設備、例如其上存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸?shù)碾娦盘枴?/p>
這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質(zhì)下載到各個計算/處理設備,或者通過網(wǎng)絡、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)下載到外部計算機或外部存儲設備。網(wǎng)絡可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網(wǎng)關計算機和/或邊緣服務器。每個計算/處理設備中的網(wǎng)絡適配卡或者網(wǎng)絡接口從網(wǎng)絡接收計算機可讀程序指令,并轉(zhuǎn)發(fā)該計算機可讀程序指令,以供存儲在各個計算/處理設備中的計算機可讀存儲介質(zhì)中。
用于執(zhí)行本公開操作的計算機程序指令可以是匯編指令、指令集架構(isa)指令、機器指令、機器相關指令、微代碼、固件指令、狀態(tài)設置數(shù)據(jù)、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言—諸如smalltalk、c++等,以及常規(guī)的過程式編程語言—諸如“c”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡—包括局域網(wǎng)(lan)或廣域網(wǎng)(wan)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng)連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態(tài)信息來個性化定制電子電路,例如可編程邏輯電路、現(xiàn)場可編程門陣列(fpga)或可編程邏輯陣列(pla),該電子電路可以執(zhí)行計算機可讀程序指令,從而實現(xiàn)本公開的各個方面。
這里參照根據(jù)本公開實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述了本公開的各個方面。應當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現(xiàn)。
這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質(zhì)中,這些指令使得計算機、可編程數(shù)據(jù)處理裝置和/或其他設備以特定方式工作,從而,存儲有指令的計算機可讀介質(zhì)則包括一個制造品,其包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的各個方面的指令。
也可以把計算機可讀程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備上執(zhí)行的指令實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作。
附圖中的流程圖和框圖顯示了根據(jù)本公開的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
以上已經(jīng)描述了本公開的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋各實施例的原理、實際應用或?qū)κ袌鲋械募夹g的技術改進,或者使本技術領域的其它普通技術人員能理解本文披露的各實施例。