儲存模式
非同步儲存體支援兩種儲存模式:封鎖和非封鎖,用戶端 (瀏覽器或物件本身) 可以透過從 Moniker 對 IBindStatusCallback::GetBindInfo的呼叫傳回BINDF_ASYNCSTORAGE來指定。 如果用戶端指定BINDF_ASYNCSTORAGE,它會收到非封鎖非同步儲存體的指標。 否則,它會接收封鎖非同步儲存體的指標。 即使用戶端未向系結內容) 註冊 IBindStatusCallback 來要求非同步系結作業 (,Moniker 仍會傳回封鎖非同步儲存體,以啟用繼承應用程式的漸進式載入。
在非封鎖模式中,非同步儲存體會在資料無法使用時傳回E_PENDING。 收到此訊息時,用戶端會等候通知,指出其他資料可供使用,然後再嘗試下載。
在封鎖模式中,非同步儲存體會封鎖呼叫,直到有新的資料可用為止,而不是傳回E_PENDING,然後解除封鎖呼叫並傳回新的資料。 用戶端必須準備好接收資料。 當執行緒遭到封鎖時,已傳遞至用戶端的資料完全可供使用者使用。
封鎖模式是必要的,因為用戶端不會察覺非同步儲存體無法辨識E_PENDING,而且會假設發生無法復原的錯誤。 封鎖非同步儲存體可讓現有的用戶端執行漸進式轉譯。