用戶界面操縱的異步處理的制作方法
【專利摘要】本文檔介紹了用于對用戶界面操縱進(jìn)行異步處理的技術(shù)和設(shè)備。這些技術(shù)用兩個或多于兩個異步過程來處理用戶界面操縱。例如,一個異步過程可確定響應(yīng)于用戶界面操縱的位置,而另一個異步過程確定像素以進(jìn)行渲染。通過這樣做,這些技術(shù)使得對用戶界面操縱的迅速且/或一致的響應(yīng)成為可能。
【專利說明】用戶界面操縱的異步處理
【背景技術(shù)】
[0001]手勢以及其他用戶界面操縱允許用戶對應(yīng)用界面內(nèi)的內(nèi)容進(jìn)行操縱。僅舉幾例來說,這些操縱允許地圖放大或縮小、在列表中移位(pan)以及旋轉(zhuǎn)圖片。傳統(tǒng)而言,與應(yīng)用界面相關(guān)聯(lián)的應(yīng)用接收用戶界面操縱,計(jì)算對操縱的響應(yīng),接著,在應(yīng)用界面中渲染(render )內(nèi)容。然而,這種以及許多其他傳統(tǒng)技術(shù)可導(dǎo)致不良的用戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0002]本文檔介紹了用于對用戶界面操縱進(jìn)行異步處理的技術(shù)和設(shè)備。這些技術(shù)用兩個或多于兩個異步過程對用戶界面操縱進(jìn)行處理。例如,一個異步過程可確定響應(yīng)于用戶界面操縱的位置,而另一個異步過程確定像素以進(jìn)行渲染。通過這樣做,這些技術(shù)使得對于用戶界面操縱的迅速和/或一致的響應(yīng)成為可能。
[0003]提供本
【發(fā)明內(nèi)容】
以便介紹下面在【具體實(shí)施方式】中進(jìn)一步介紹的用于對用戶界面操縱進(jìn)行異步處理的簡化構(gòu)思。本
【發(fā)明內(nèi)容】
并非旨在識別所要保護(hù)主題的實(shí)質(zhì)性特征,也并非旨在用于確定所要保護(hù)主題的范圍。用于對用戶界面操縱進(jìn)行異步處理的技術(shù)和/或設(shè)備在這里也分立提及或結(jié)合稱為“技術(shù)”,如上下文所允許的那樣。
【專利附圖】
【附圖說明】
[0004]參照附圖介紹用于對用戶界面操縱進(jìn)行異步處理的實(shí)施例。貫穿附圖,同樣的標(biāo)號用于表示類似的特征和部件:
圖1示出了可實(shí)施對用戶界面操縱進(jìn)行異步處理的技術(shù)的示例性系統(tǒng);
圖2示出了圖1的計(jì)算裝置的示例性實(shí)施例;
圖3示出了圖1的遠(yuǎn)程提供者的示例性實(shí)施例;
圖4示出了用于對指向三個實(shí)體的UI操縱進(jìn)行異步處理的示例性方法;
圖5對于新聞文章示出了具有邊界和視口(viewport)的內(nèi)容,在視口中,內(nèi)容的一部分當(dāng)前在應(yīng)用界面內(nèi)被渲染;
圖6示出了圖2的三個實(shí)體的異步操作,其各自在不同的計(jì)算過程中;
圖7示出了對于渲染圖5的內(nèi)容的應(yīng)用界面所做的輕彈單指手勢;
圖8示出了方法400的結(jié)果,其中,內(nèi)容的第二部分響應(yīng)于UI操縱的輸入而被渲染; 圖9示出了用于對指向兩個實(shí)體的UI操縱進(jìn)行異步處理的示例性方法;
圖10對于圖像示出了具有邊界和視口的內(nèi)容,在視口中,該內(nèi)容的一部分在應(yīng)用界面中被渲染,或后來可在應(yīng)用界面中被渲染;
圖11示出了示例性裝置,其中,可實(shí)現(xiàn)用于對用戶界面操縱進(jìn)行異步處理的技術(shù)。
【具體實(shí)施方式】
[0005]概沭
在全面介紹用于對用戶界面操縱進(jìn)行異步處理的這些技術(shù)和設(shè)備之前,本文檔考慮這樣的傳統(tǒng)技術(shù):其中,用戶界面(UI)操縱在用戶界面線程上用單個過程進(jìn)行處理。這種傳統(tǒng)技術(shù)可提供不良的用戶體驗(yàn),因?yàn)榇藛蝹€過程執(zhí)行太多的其它操作,或者因?yàn)槌藢υ搩?nèi)容將被渲染的地方進(jìn)行處理以外,其對內(nèi)容進(jìn)行預(yù)渲染。因此,這種傳統(tǒng)技術(shù)可能導(dǎo)致不能迅速提供位置響應(yīng)或迅速取回并渲染內(nèi)容。不能迅速提供位置響應(yīng)可導(dǎo)致忽動忽停的用戶體驗(yàn)或是不連貫的用戶體驗(yàn)。不能迅速取回并渲染內(nèi)容可導(dǎo)致應(yīng)用界面上視口的空白部分。例如,如果用戶試圖向下移位新聞文章以看到內(nèi)容的新頁面,這種傳統(tǒng)技術(shù)可能在操縱正在被處理時呈現(xiàn)空白頁面。
[0006]然而,這里介紹的技術(shù)和設(shè)備使得對Π操縱的迅速和/或一致的響應(yīng)成為可能。上面提到的在新聞文章中移位的用戶可立即看到文章的新頁面而不是空白頁面,同時,還享有反應(yīng)敏捷的用戶體驗(yàn)。另外,在某些實(shí)施例中,這些技術(shù)使得跨多種不同應(yīng)用以及應(yīng)用界面的一致的用戶體驗(yàn)成為可能。下面給出該技術(shù)可做到這些的方式。
[0007]進(jìn)行本討論,以介紹該技術(shù)可運(yùn)行的示例性環(huán)境、該技術(shù)可執(zhí)行的方法以及示例性設(shè)備。
[0008]示例件環(huán)塏
圖1示出了一示例性環(huán)境100,其中,可實(shí)現(xiàn)用于對用戶界面操縱進(jìn)行異步處理的技術(shù)。環(huán)境100包括計(jì)算裝置102、遠(yuǎn)程提供者104以及通信網(wǎng)絡(luò)106,通信網(wǎng)絡(luò)106使得這些實(shí)體之間的通信成為可能。計(jì)算裝置102在觸摸屏顯示器110上呈現(xiàn)應(yīng)用界面108。應(yīng)用界面108包括視口 112,內(nèi)容通過視口 112向用戶顯示,并且,在許多情況下,用戶界面(UI)操縱通過視口 112被接收。
[0009]用戶操縱可包括多種類型的用戶輸入以及輸入裝置,例如使用鼠標(biāo)點(diǎn)擊可選擇的控制器或作出基于鼠標(biāo)的手勢,通過觸摸屏顯示器使用單指或多指手勢,以及使用語音激活。無論是通過手勢還是以其他方式,用戶操縱可允許放大或縮小(例如更高或更低分辨率)、在兩個維度移位、旋轉(zhuǎn)(在兩個或三個維度)、變形、平移以及仿射變換(例如線形變形與平移一起)等等。
[0010]舉例而言,考慮圖1所示的用戶操縱114。用戶操縱114是旨在迅速在視口 112中顯示的內(nèi)容中移位的輕彈單指手勢。用戶操縱114在視口 112中并通過觸摸屏顯示器110被接收。貫穿本文檔,盡管手勢常常用作示例性的UI操縱,也可使用或作為替代地使用非手勢操縱。
[0011]圖2示出了圖1的計(jì)算裝置102的示例性實(shí)施例,其用六個示例性裝置示出:膝上型電腦102-1,平板電腦102-2,智能電話102-3,機(jī)頂盒102-4,桌上型電腦102-5以及游戲裝置102-6,然而,也可使用其它的計(jì)算裝置和系統(tǒng),例如服務(wù)器和上網(wǎng)本。
[0012]計(jì)算裝置102包括(多個)計(jì)算機(jī)處理器202、計(jì)算機(jī)可讀存儲介質(zhì)204 (介質(zhì)204)以及一個或多于一個顯示器206,或者,可訪問(多個)計(jì)算機(jī)處理器202、計(jì)算機(jī)可讀存儲介質(zhì)204 (介質(zhì)204)以及一個或多于一個顯示器206,計(jì)算裝置102的四個實(shí)例在圖2中示出。介質(zhì)204包括操作系統(tǒng)208、操作器(handler) 210、合成器212以及應(yīng)用214,其各自能夠提供應(yīng)用界面216。在某些情況下,應(yīng)用214與遠(yuǎn)程裝置結(jié)合提供應(yīng)用界面216,例如在本地應(yīng)用為瀏覽器且遠(yuǎn)程裝置包括網(wǎng)絡(luò)使能服務(wù)提供者時。
[0013]一般而言,操作器210響應(yīng)于UI操縱確定內(nèi)容中的位置,位置與內(nèi)容中響應(yīng)于操縱用于顯示的部分相關(guān)聯(lián)。此位置包括可用于對內(nèi)容的顯示進(jìn)行操縱的信息,作為僅僅幾個例子,例如內(nèi)容中的位置、分辨率變化或方向變化。操作器210可以為應(yīng)用、應(yīng)用小程序或能夠與應(yīng)用214和/或合成器212通信的其它實(shí)體。
[0014]一般而言,合成器212基于從一個實(shí)體接收的位置對從另一實(shí)體接收的預(yù)渲染內(nèi)容(先前的或同時的)進(jìn)行渲染,例如來自應(yīng)用214的預(yù)渲染內(nèi)容以及來自操作器210的位置。合成器212可包括圖形卡或在屏幕上顯示像素的其它實(shí)體。
[0015]應(yīng)用214對內(nèi)容的與由操作器210確定的位置相關(guān)聯(lián)的部分進(jìn)行預(yù)渲染,以便由合成器212進(jìn)行渲染,或者,在某些情況下,用于由應(yīng)用214進(jìn)行渲染。如果與該位置相關(guān)聯(lián)的內(nèi)容部分已經(jīng)被預(yù)渲染(例如,UI操縱移動當(dāng)前顯示或存儲的內(nèi)容),應(yīng)用214可放棄預(yù)渲染該相同內(nèi)容部分。
[0016]如上面部分提到的,操作器210與應(yīng)用214異步操作,在某些情況下,也與合成器212異步操作。操作器210至少通過與對內(nèi)容進(jìn)行預(yù)渲染的實(shí)體——其常常由應(yīng)用214執(zhí)行——分立地確定與UI操縱對應(yīng)的位置來異步操作。異步行為的多種實(shí)例包括作為與應(yīng)用214不同的計(jì)算過程的一部分的操作器210,和/或在與應(yīng)用214不同的CPU或CPU線程上運(yùn)行的操作器210。操作器210在其上運(yùn)行的CPU線程可專門用于確定UI操縱的位置,而不是預(yù)渲染或其它功能,由此,提供反應(yīng)敏捷的用戶體驗(yàn)。合成器212可與操作器210或應(yīng)用214異步運(yùn)行,或者,可與操作器210或應(yīng)用214同步。
[0017]另外,在某些情況下,UI操縱不導(dǎo)致需要預(yù)渲染的新的內(nèi)容部分,相反,已經(jīng)預(yù)渲染(或渲染)的內(nèi)容正在被操縱。在這種情況下,此Π操縱的異步處理不會由于在可能正在執(zhí)行其他操作的線程(例如應(yīng)用可能在其中運(yùn)行的某些用戶界面線程)上操作而慢下來。
[0018]圖3示出了遠(yuǎn)程提供者104的示例性實(shí)施例。為視覺簡潔起見,遠(yuǎn)程提供者104被示為單一實(shí)體,但是,該技術(shù)可以想到多個提供者。遠(yuǎn)程提供者104包括(多個)提供者處理器302以及提供者計(jì)算機(jī)可讀存儲介質(zhì)304 (介質(zhì)304)或可對之進(jìn)行訪問。介質(zhì)304包括服務(wù)306,其通過計(jì)算裝置102的應(yīng)用界面216 (例如顯示在顯示器206或觸摸屏顯示器110上)與用戶交互。因此,在某些情況下,服務(wù)306可執(zhí)行應(yīng)用214的動作,或與應(yīng)用214結(jié)合動作,例如在應(yīng)用214為web瀏覽器的情況下。
[0019]下面更為詳細(xì)地給出圖1-3的實(shí)體動作和交互的方式。在這里介紹的異步運(yùn)行允許的程度上,對于計(jì)算裝置102和/或遠(yuǎn)程提供者104所示的實(shí)體可以是分立或是集成的,例如,操作器210與操作系統(tǒng)208集成或與之分立。
[0020]示例性方法
圖4和圖9示出了用于Π操縱的異步處理的方法。圖4涉及具有三個分立實(shí)體的UI操縱的異步處理。圖9涉及具有兩個分立實(shí)體的Π操縱的異步處理。在下面的討論部分中,可參照圖1的環(huán)境,如圖2-3詳細(xì)示出的,僅僅作為示例而參照它。
[0021]在第一實(shí)體處,塊402接收能夠顯示在應(yīng)用界面中的內(nèi)容的邊界。這些邊界在響應(yīng)于Π操縱確定內(nèi)容中的位置時有用,例如能夠顯示的內(nèi)容的整體尺寸和/或分辨率。內(nèi)容可包括,例如,一部分被顯示的完整圖片,第一頁被顯示的十頁的文章,或一城市被顯示的一州大小的地圖。
[0022]舉例而言,考慮圖5,其示出了內(nèi)容502和視口 504。視口 504顯示當(dāng)前在應(yīng)用界面216中渲染的內(nèi)容502的一部分。內(nèi)容502包括邊界506,其在這里是以像素為單位的內(nèi)容的整體尺寸,但是,邊界可包括更多、更少或不同的信息,僅僅舉幾個例子,例如文章中的頁碼、各頁的尺寸、整體地圖尺寸、當(dāng)前分辨率或可能的分辨率(最高以及最低分辨率)。然而,對于此實(shí)例,考慮邊界506包括內(nèi)容502的整體尺寸。
[0023]在第一實(shí)體處,塊404接收或確定視口的尺寸和位置,在該視口中,內(nèi)容的一部分當(dāng)前在應(yīng)用界面中被顯示。在某些實(shí)施例中,僅使用內(nèi)容中的簡單位置,而不是視口的尺寸和位置。然而,在可能的位置出于一致性和/或用戶界面的觸摸和感覺而被調(diào)節(jié)的情況下,內(nèi)容中的位置和視口尺寸可能是有用的。下面更為詳細(xì)地介紹一致性以及觸摸和感覺。
[0024]繼續(xù)當(dāng)前實(shí)例,在塊402和404中,操作器210接收內(nèi)容502和視口 504的尺寸以及視口 504在內(nèi)容502中的位置。內(nèi)容502和視口 504的尺寸可以以X-Y坐標(biāo)和/或像素?cái)?shù)表示或以其它格式表示。
[0025]注意,視口 504是視口的一個實(shí)例,其另一個實(shí)例在圖1中的112處示出。這兩個視口均顯示其相應(yīng)的內(nèi)容的一部分。在此實(shí)例中,觀看應(yīng)用界面216的用戶在關(guān)于天氣衛(wèi)星的三頁文章的視口 504內(nèi)看到第一頁。
[0026]在與第二實(shí)體異步運(yùn)行的第一實(shí)體處,塊406接收Π操縱的輸入。異步運(yùn)行的實(shí)例在圖6中示出。這里,第一實(shí)體是操作器210,第二實(shí)體是應(yīng)用214。操作器210、應(yīng)用214和合成器212被示為分別作為不同的計(jì)算過程602、604和606的一部分異步運(yùn)行。
[0027]Π操縱的這一輸入可從第二實(shí)體或以其他方式接收。在圖2和圖3詳細(xì)示出的圖1的示例性環(huán)境100中,例如,操作器210可接收來自應(yīng)用214或另一實(shí)體(例如操作系統(tǒng)208)的輸入。操作器210也可接收響應(yīng)于UI操縱的對于內(nèi)容中的位置的請求、內(nèi)容的邊界以及確定位置時有用的其他信息。Π操縱并不必然由用戶作出,但它經(jīng)常由用戶作出。如上面所提到的,此Π操作可由用戶借助直接觸摸或間接觸摸裝置通過手勢或以其他方式作出。
[0028]繼續(xù)進(jìn)行中的實(shí)例,假設(shè)通過輸入608由圖6所示的操作器210并從應(yīng)用214接收UI操縱的輸入。Π操縱在圖7中用此示出:在像素[20,75]的[X,Y]位置處,對應(yīng)用界面216的視口 504 (也在圖5中示出)的初始觸摸702,以及從初始觸摸到具有[20,50]的第二位置的中間觸摸704的移動。因此,在此實(shí)例中,UI操縱為開始于[20,75]并移動到[20,50]的輕彈單指手勢706。輸入可能還包括其他信息,這里有手勢的速度和慣性。
[0029]基于輸入和邊界,塊408確定內(nèi)容的第二部分所關(guān)聯(lián)的內(nèi)容中的位置,內(nèi)容的第二部分在應(yīng)用界面中的顯示響應(yīng)于對內(nèi)容進(jìn)行操縱的輸入。塊408可基于除輸入和邊界以外的條件來確定位置,其中的某些對否則將被使用的位置進(jìn)行改變。這些另外的條件在下面更為詳細(xì)地涵蓋,并包括觸摸與感覺方面,例如在內(nèi)容或其章節(jié)的末尾提供“彈回”,放慢或加速在內(nèi)容中的移動,以及“停留”到內(nèi)容中特定的點(diǎn)或分辨率以防止與子部分重疊(例如,停在具有許多圖片的內(nèi)容的單個圖片上,即使基于輸入和邊界確定的可能的位置將落在兩個圖片的部分上,或者,停在內(nèi)容頁的末尾,而不是顯示一頁的末尾和另一頁的開頭)。
[0030]塊408也可基于對于內(nèi)容支持的響應(yīng)來確定位置。這些支持的響應(yīng)可接收自負(fù)責(zé)渲染內(nèi)容的應(yīng)用(例如應(yīng)用214),并指示應(yīng)用是否支持例如移位、放大、縮小或旋轉(zhuǎn)。
[0031]繼續(xù)進(jìn)行中的實(shí)例,操作器210接收Π操縱的位置、速度和慣性。采用此信息以及內(nèi)容的邊界,操作器210確定響應(yīng)于此Π操作的內(nèi)容中的位置(或其部分)。注意,操作器210不被預(yù)渲染或渲染與該位置相關(guān)聯(lián)的內(nèi)容占用,而是被位置自身占用。通過這樣做,用戶可體驗(yàn)迅速且反應(yīng)敏捷的移動,例如在此實(shí)例中“黏著”到用戶手指的新聞文章。[0032]基于邊界和輸入,操作器210確定新的位置,這里為圖5在506處所示的三頁新聞文章的第二頁。此位置確定或可用于確定哪一內(nèi)容被渲染,但是,其不包括內(nèi)容本身的預(yù)渲染、渲染或是處理。
[0033]下面更為詳細(xì)地介紹預(yù)渲染以及其他方面。然而,在此特定實(shí)例中,作為回調(diào)操作的一部分,操作器210將位置傳送到第二實(shí)體,其在這里為應(yīng)用214。這在圖6中用提供給應(yīng)用214的位置610示出。
[0034]塊410將位置提供給可訪問由第二實(shí)體準(zhǔn)備和/或從第二實(shí)體接收的預(yù)渲染內(nèi)容的第三實(shí)體。如上面所提到的,預(yù)渲染內(nèi)容可包括內(nèi)容的第二部分,有效地使得第三實(shí)體能夠響應(yīng)于對內(nèi)容進(jìn)行操縱的輸入在應(yīng)用界面中顯示內(nèi)容的第二部分。
[0035]回到進(jìn)行中的實(shí)例,操作器210向合成器212提供在圖5的內(nèi)容502中的位置610(圖6中示出),該位置顯示,應(yīng)當(dāng)響應(yīng)于Π操縱渲染三頁新聞文章的第二頁。合成器212可用先前預(yù)渲染的內(nèi)容(例如圖6的像素612)迅速響應(yīng)該位置信息,先前預(yù)渲染的內(nèi)容可能在某個之前的時刻已經(jīng)預(yù)渲染并對合成器212可用。在某些情況下,合成器212可與從操作器210接收位置大致同時地從應(yīng)用214接收預(yù)渲染的內(nèi)容。新聞文章的第二頁的這種渲染在圖8中在802處示出。
[0036]更為詳細(xì)地,考慮這樣的實(shí)例:每八毫秒由操作器210接收Π操縱的輸入,每八毫秒常常是用于液晶顯示器(LCD)屏幕的刷新速率。這里,假設(shè)通過與應(yīng)用214運(yùn)行的用戶界面過程異步且處于分立過程地運(yùn)行,操作器210能夠與顯示器刷新速率相比較快地向合成器212提供位置。通過這種方式,用戶操縱能“黏著”到用戶的輸入裝置(手指,觸控筆,鼠標(biāo)箭頭等),因?yàn)閮?nèi)容被顯示為隨著輸入裝置移動。
[0037]注意,可以立即響應(yīng)于操縱而呈現(xiàn)可用于合成器212的內(nèi)容,甚至是在操縱正在作出的同時。在某些情況下,負(fù)責(zé)提供預(yù)渲染內(nèi)容的實(shí)體可能不具有立即對合成器212可用的這種內(nèi)容,因?yàn)轭A(yù)渲染內(nèi)容可在某些裝置中花費(fèi)70到200毫秒。然而,即使這樣,實(shí)體仍可能能夠與實(shí)體也負(fù)責(zé)操作器210的基于位置的運(yùn)行的情況下相比更為迅速地提供預(yù)渲染內(nèi)容。另外,即使將要顯示的某些內(nèi)容不對于合成器212預(yù)渲染,已經(jīng)預(yù)渲染的內(nèi)容可用于提供非常好的用戶體驗(yàn)。
[0038]方法400可以整體或部分重復(fù),有效地響應(yīng)于UI操縱提供多個實(shí)時位置,例如當(dāng)UI操縱包括多個輸入時。
[0039]如上面提到的,圖4包括三個實(shí)體,示例涉及操作器210、合成器212以及應(yīng)用214。下面介紹圖9,其包括兩個實(shí)體,示例涉及操作器210和應(yīng)用214。示例還進(jìn)一步介紹了用于確定位置的附加條件,例如上面提到的觸摸與感覺方面。
[0040]塊902與圖4的塊406類似地運(yùn)行,并在與第二實(shí)體異步運(yùn)行的第一實(shí)體上接收UI操縱的輸入??稍趬K902之前接收內(nèi)容的邊界以及接收或確定視口的尺寸和位置,如圖4所示的那樣。
[0041]舉例而言,考慮圖10,其示出了內(nèi)容1002和視口 1004。視口 1004顯示當(dāng)前在應(yīng)用界面216中渲染的內(nèi)容1002的部分。內(nèi)容1002包括邊界1006,其在這里為內(nèi)容的整體尺寸。還假設(shè)操作器210知道視口 1004的尺寸和位置。
[0042]還假設(shè)操作器210接收具有來自應(yīng)用214的多個輸入的Π操縱的輸入,所述多個輸入選擇橫跨內(nèi)容地移動視口 1004并超過其邊界1006。[0043]基于輸入、邊界以及在某些替代情況下的視口尺寸和位置,塊904確定內(nèi)容的第二部分在內(nèi)容中所關(guān)聯(lián)的位置。如上,內(nèi)容的此第二部分響應(yīng)于UI操縱的輸入。
[0044]對于進(jìn)行的實(shí)例,假設(shè)操作器210基于輸入、邊界和視口確定位置。因此,對于接收到UI操縱的輸入的方法900的首先的三次迭代,操作器210對于視口確定位置1008、1010和1012 (例如,內(nèi)容1002中的位置以對內(nèi)容的部分進(jìn)行渲染,而不是內(nèi)容自身),其用虛線的、視口大小的位置示出。例如,觀看應(yīng)用界面216的用戶看到具有三棵樹和伴隨的枝葉的較大圖像在視口 1004內(nèi)的兩個樹干,后來,在此實(shí)例中將看到位置1008、1010和1012內(nèi)的內(nèi)容。
[0045]塊906向第二實(shí)體提供輸入的位置,有效使得第二實(shí)體能夠響應(yīng)于操縱內(nèi)容的輸入在應(yīng)用界面內(nèi)并在該位置對內(nèi)容的第二部分進(jìn)行渲染。如所示的,響應(yīng)于對于Π操縱的第一輸入,操作器210向應(yīng)用214提供位置1008。于是,應(yīng)用214在應(yīng)用界面216內(nèi)的位置1008處顯示視口內(nèi)所示的內(nèi)容。在方法900的進(jìn)一步的迭代上,操作器210提供位置1010和1012,應(yīng)用214對之作出響應(yīng)地對與這些位置相關(guān)聯(lián)的內(nèi)容進(jìn)行渲染。在此實(shí)例中對內(nèi)容進(jìn)行渲染由應(yīng)用214進(jìn)行。此實(shí)例假設(shè)所有內(nèi)容1002由應(yīng)用214預(yù)渲染,因此,一旦接收到這些位置,可迅速用于渲染。然而,在某些情況下,應(yīng)用214也可對內(nèi)容進(jìn)行預(yù)渲染。
[0046]然而,在某些情況下,技術(shù)基于另外的條件確定位置,其中的某些對否則將響應(yīng)于輸入和邊界的位置產(chǎn)生影響??紤]圖10的位置1014。此位置超過內(nèi)容1002的邊界1006。照此,操作器210可提供此位置,響應(yīng)于此位置,應(yīng)用214可能在此位置內(nèi)對內(nèi)容進(jìn)行渲染,并呈現(xiàn)某些空白空間。
[0047]作為替代或作為附加地,技術(shù)可考慮到這一點(diǎn)以及其他方面,以提供具有特定外觀和感受或是其他用戶體驗(yàn)的位置。這里,假設(shè)操作器210計(jì)算位置1014,并且,基于其越過邊界1006,作為替代地在塊906處向應(yīng)用214提供兩個位置??紤]塊904的替代性方面,其中,操作器210在塊908處使用另外的條件來確定位置。這些另外的條件可總是、有時、偶爾或響應(yīng)于某種其他判斷來使用,包括作為方法400的一部分。這里,基于輸入以及視口的尺寸和先前位置(視口 1004足夠大到部分越過),操作器210首先判斷位置1014將會越過邊界1006。響應(yīng)于這種判斷,操作器210判斷在位置1016結(jié)束Π操縱(實(shí)線所示)。操作器210也可向應(yīng)用214提供其他位置,以顯示這是內(nèi)容的末尾/邊緣,例如“彈回”位置。
[0048]前面的討論介紹了與UI操縱的異步處理有關(guān)的方法。這些方法的方面可在硬件(例如固定邏輯電路)、固件、軟件、手動處理或其任意組合中實(shí)現(xiàn)。軟件實(shí)施方式代表當(dāng)由計(jì)算機(jī)處理器執(zhí)行時執(zhí)行特定任務(wù)的程序代碼。示例性方法可在計(jì)算機(jī)可執(zhí)行指令的一般背景下介紹,其可包括軟件、應(yīng)用、例程、程序、對象、部件、數(shù)據(jù)結(jié)構(gòu)、過程、模塊、函數(shù)等。程序代碼可存儲在一個或多于一個計(jì)算機(jī)可讀存儲器裝置中,該裝置對于計(jì)算機(jī)處理器是本地的和/或遠(yuǎn)程的。該方法還可以由多個計(jì)算裝置以分布計(jì)算模式實(shí)現(xiàn)。另外,這里介紹的特征是不依賴于平臺的,并可在具有多種處理器的多種計(jì)算平臺上實(shí)施。
[0049]這些技術(shù)可在包括圖2或3詳細(xì)所示的圖1的環(huán)境100和/或下面介紹的示例性裝置1100中示出的一個或多于一個實(shí)體上實(shí)現(xiàn),其可進(jìn)一步劃分、合并等等。因此,環(huán)境100和/或裝置1100示出了能夠使用所介紹技術(shù)的許多可能的系統(tǒng)和設(shè)備中的一些。環(huán)境100和/或裝置1100的實(shí)體一般代表軟件、固件、硬件、整體裝置或網(wǎng)絡(luò)或其組合。在軟件實(shí)施方式的情況下,例如,實(shí)體(例如操作器210、合成器212、應(yīng)用214和服務(wù)306)代表當(dāng)在處理器(例如處理器202和/或302)上執(zhí)行時執(zhí)行特定任務(wù)的程序代碼。程序代碼可存儲在一個或多于一個計(jì)算機(jī)可讀存儲器裝置上,例如圖11的介質(zhì)204、提供者介質(zhì)304或計(jì)算機(jī)可讀介質(zhì)1114上。
[0050]示例性裝置
圖11示出了示例性裝置1100的多種部件,示例性裝置1100可實(shí)現(xiàn)為如參照前面的圖1-8介紹的任何類型的客戶端、服務(wù)器和/或計(jì)算裝置,以實(shí)現(xiàn)用于對UI操縱進(jìn)行異步處理的技術(shù)。在實(shí)施例中,裝置1100可實(shí)現(xiàn)為有線和/或無線裝置的一個或組合,以電視客戶端裝置(例如電視機(jī)頂盒、數(shù)字視頻記錄器(DVR)等)、消費(fèi)品裝置、計(jì)算機(jī)裝置、服務(wù)器裝置、便攜式計(jì)算機(jī)裝置、用戶裝置、通信裝置、視頻處理和/或呈現(xiàn)裝置、電器裝置、游戲裝置、電子裝置和/或其他類型裝置的形式。裝置1100也可與用戶(例如人)和/或運(yùn)行裝置的實(shí)體相關(guān)聯(lián),使得裝置描述包括用戶、軟件、固件和/或裝置組合的邏輯裝置。
[0051]裝置1100包括通信裝置1102,其使得裝置數(shù)據(jù)1104 (例如接收的數(shù)據(jù),正在接收的數(shù)據(jù),計(jì)劃廣播的數(shù)據(jù),數(shù)據(jù)的數(shù)據(jù)包等等)的有線和/或無線通信成為可能。裝置數(shù)據(jù)1104或其他裝置內(nèi)容可包括裝置的配置設(shè)置、存儲在裝置上的介質(zhì)內(nèi)容和/或與裝置的用戶相關(guān)聯(lián)的信息。裝置1100包括一個或多于一個數(shù)據(jù)輸入1106,經(jīng)由該數(shù)據(jù)輸入,可接收任何類型的數(shù)據(jù)、介質(zhì)內(nèi)容和/或輸入,例如人類表達(dá)、用戶可選擇的輸入(手勢或以其他形式)、消息、音樂、電視媒體內(nèi)容、記錄的視頻內(nèi)容以及從任何內(nèi)容和/或數(shù)據(jù)源接收的任何其他類型的數(shù)據(jù)。
[0052]裝置1100還包括通信接口 1108,其可實(shí)現(xiàn)為串行和/或并行接口、無線接口、任何類型的網(wǎng)絡(luò)接口、調(diào)制解調(diào)器中的任何一個或多于一個,或作為任何類型的通信接口。通信接口 1108提供裝置1100和通信網(wǎng)絡(luò)之間的連接和/或通信鏈路,其他電子、計(jì)算以及通信裝置通過該通信網(wǎng)絡(luò)與裝置1100進(jìn)行數(shù)據(jù)通信。
[0053]裝置1100包括一個或多于一個的處理器1110 (例如,微處理器、控制器等中的任何一個),其對多種計(jì)算機(jī)可執(zhí)行指令進(jìn)行處理,以便控制裝置1100的運(yùn)行,并使得對Π操縱進(jìn)行異步處理的技術(shù)成為可能。作為替代或作為附加地,裝置1100可用與一般在1112處指明的處理與控制電路結(jié)合實(shí)現(xiàn)的硬件、固件或固定邏輯電路中的任何一個或組合實(shí)現(xiàn)。盡管沒有示出,裝置1100可包括系統(tǒng)總線或數(shù)據(jù)傳輸系統(tǒng),其耦合裝置內(nèi)的所述多種部件。系統(tǒng)總線可包括不同總線結(jié)構(gòu)的任何一種或組合,例如存儲器總線或存儲器控制器、夕卜設(shè)總線、通用串行總線和/或使用多種總線體系結(jié)構(gòu)中的任何一種的處理器或局部總線。
[0054]裝置1100還包括計(jì)算機(jī)可讀存儲介質(zhì)1114,例如使能持續(xù)和/或非瞬時數(shù)據(jù)存儲(即與單純信號傳輸形成對比)的一個或多于一個存儲器裝置,其實(shí)例包括隨機(jī)訪問存儲器(RAM)、非易失性存儲器(例如只讀存儲器(ROM)、閃存、EPROM、EEPROM等中的一個或多于一個)以及盤存儲裝置。盤存儲裝置可實(shí)現(xiàn)為任何類型的磁或光存儲裝置,例如硬盤驅(qū)動器、可記錄和/或可重寫入壓縮盤(⑶)、任何類型的數(shù)字多功能盤(DVD)等等。裝置1100也可包括海量存儲介質(zhì)裝置1116。
[0055]計(jì)算機(jī)可讀存儲介質(zhì)1114提供數(shù)據(jù)存儲機(jī)制,以存儲裝置數(shù)據(jù)1104以及多種裝置應(yīng)用1118和任何其他類型的與裝置1100的運(yùn)行方面有關(guān)的信息和/或數(shù)據(jù)。例如,操作系統(tǒng)1120可由計(jì)算機(jī)可讀存儲介質(zhì)1114作為計(jì)算機(jī)應(yīng)用維護(hù)并在處理器1110上執(zhí)行。裝置應(yīng)用1118可包括裝置管理器,例如任何形式的控制應(yīng)用、軟件應(yīng)用、信號處理和控制模塊、特定裝置本機(jī)的代碼、用于特定裝置的硬件抽象層等等。
[0056]裝置應(yīng)用1118還可包括實(shí)現(xiàn)用于對Π操縱進(jìn)行異步處理的技術(shù)的任何系統(tǒng)部件、引擎或模塊。在此實(shí)例中,裝置應(yīng)用1118可包括操作器210、合成器212以及應(yīng)用214。
[0057]
盡管已經(jīng)用對特征和/或方法特定的語言介紹了用于對UI操縱進(jìn)行異步處理的技術(shù)和設(shè)備的實(shí)施例,將會明了,所附權(quán)利要求的主題不必限制于所介紹的特定特征或方法。相反,特定特征和方法作為用于對UI操縱進(jìn)行異步處理的示例性實(shí)施方式而公開。
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 在與第二實(shí)體異步運(yùn)行的第一實(shí)體處,接收來自內(nèi)容的用戶界面(UI)操縱的輸入,內(nèi)容的第一部分在通過其作出UI操作的用戶界面中呈現(xiàn); 基于輸入和內(nèi)容的邊界,確定內(nèi)容的第二部分關(guān)聯(lián)的內(nèi)容的位置,內(nèi)容的第二部分在應(yīng)用界面中的顯示是響應(yīng)于Π操縱的;以及 將該位置提供給可訪問由第二實(shí)體準(zhǔn)備的預(yù)渲染內(nèi)容的第三實(shí)體,預(yù)渲染內(nèi)容至少包括內(nèi)容的第二部分,有效使得第三實(shí)體響應(yīng)于Π操縱基于位置在應(yīng)用界面中顯示內(nèi)容的第二部分。
2.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,確定位置進(jìn)一步基于除輸入和邊界以外的條件,條件指示響應(yīng)于輸入的可能的位置將會重疊內(nèi)容的子部分或是超過內(nèi)容的邊界。
3.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,輸入包括Π操縱的速度或慣性,且確定位置是基于速度或慣性的。
4.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其還包括: 在將位置提供給第三實(shí)體之前,將位置提供給第二實(shí)體,有效使得第二實(shí)體對至少具有內(nèi)容的第二部分的預(yù)渲染內(nèi)容進(jìn)行預(yù)渲染。
5.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,第一實(shí)體和第二實(shí)體異步運(yùn)行包括在不同的相應(yīng)的CPU線程中運(yùn)行。
6.如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,在Π操縱被作出之前,內(nèi)容的第二部分被預(yù)渲染并可由第三實(shí)體訪問。
7.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括: 在與第二實(shí)體異步運(yùn)行的第一實(shí)體處,接收來自內(nèi)容的用戶界面(UI)操縱的輸入,內(nèi)容的第一部分在作出UI操縱的應(yīng)用界面內(nèi)呈現(xiàn); 基于輸入和內(nèi)容的邊界,確定內(nèi)容的第二部分所關(guān)聯(lián)的內(nèi)容中的位置,內(nèi)容的第二部分在應(yīng)用界面中的顯示是響應(yīng)于Π操縱的;以及 將位置提供給第二實(shí)體,有效使得第二實(shí)體能夠響應(yīng)于UI操縱在該位置并在應(yīng)用界面中對內(nèi)容的第二部分進(jìn)行渲染。
8.如權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,確定位置進(jìn)一步基于: 在應(yīng)用界面內(nèi)顯示內(nèi)容的第一部分或?qū)⒃趹?yīng)用界面內(nèi)顯示內(nèi)容的第二部分的視口的尺寸;以及 除輸入和邊界之外的條件,條件指示,在視口的尺寸上,響應(yīng)于輸入的可能的位置將重疊內(nèi)容的子部分或越過內(nèi)容的邊界, 其中,位置使得內(nèi)容的第二部分相應(yīng)地不重疊子部分或越過內(nèi)容的邊界。
9.如權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,第一實(shí)體在不進(jìn)行預(yù)渲染的計(jì)算過程中運(yùn)行,且第二實(shí)體在進(jìn)行預(yù)渲染的不同的計(jì)算過程中運(yùn)行。
10.如權(quán)利要求7所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,第二實(shí)體是負(fù)責(zé)在應(yīng)用界面內(nèi)渲染內(nèi)容的應(yīng)用。
【文檔編號】G06F9/44GK103649908SQ201180071272
【公開日】2014年3月19日 申請日期:2011年10月9日 優(yōu)先權(quán)日:2011年6月1日
【發(fā)明者】L.穆頓, N.J.布倫, R.N.呂恩根, S.鄒, N.R.沃戈納 申請人:微軟公司