nsICachingChannel 编辑

netwerk/base/public/nsICachingChannel.idlScriptable Please add a summary to this article. Inherits from: nsICacheInfoChannel Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

This interface provides:

  1. Support for "stream as file" semantics (for JAR and plugins).
  2. Support for "pinning" cached data in the cache (for printing and save-as).
  3. Support for uniquely identifying cached data in cases when the URL is insufficient. For example a HTTP form submission.

A channel may optionally implement this interface to allow clients to affect its behavior with respect to how it uses the cache service.

Method overview

boolean isFromCache(); Obsolete since Gecko 2.0

Attributes

AttributeTypeDescription
cacheAsFilebooleanSpecifies whether or not the data should be cached to a file. This may fail if the disk cache is not present. The value of this attribute is usually only settable during the processing of a channel's OnStartRequest. The default value of this attribute depends on the particular implementation of nsICachingChannel.
cacheFilensIFileGet the "file" where the cached data can be found. This is valid for as long as a reference to the cache token is held. This may return an error if cacheAsFile is false. Read only.
cacheForOfflineUsebooleanSpecifies whether or not the data should be placed in the offline cache, in addition to normal memory/disk caching. This may fail if the offline cache is not present. The value of this attribute should be set before opening the channel.
cacheKeynsISupports

Uniquely identifies the data in the cache for this channel. Holding a reference to this key does not prevent the cached data from being removed.

A cache key retrieved from a particular instance of nsICachingChannel could be set on another instance of nsICachingChannel provided the underlying implementations are compatible and provided the new channel instance was created with the same URI. The implementation of nsICachingChannel would be expected to use the cache entry identified by the cache token. Depending on the value of nsIRequest.loadFlags(), the cache entry may be validated, overwritten, or simply read.

The cache key may be null indicating that the URI of the channel is sufficient to locate the same cache entry. Setting a null cache key is likewise valid.
cacheTokennsISupports

Uniquely identifies the data in the cache. Holding a reference to this token prevents the cached data from being removed.

A cache token retrieved from a particular instance of nsICachingChannel could be set on another instance of nsICachingChannel provided the underlying implementations are compatible. The implementation of nsICachingChannel would be expected to only read from the cache entry identified by the cache token and not try to validate it.

The cache token can be QueryInterface'd to a nsICacheEntryInfo if more detail about the cache entry is needed. For example, expiration time.
offlineCacheClientIDACStringThe session into which to cache offline data. If not specified, data will be placed in "HTTP-offline".
offlineCacheTokennsISupportsThe same as cacheToken but accessing the offline app cache token if there is any.
Exceptions thrown
NS_ERROR_NOT_AVAILABLE
When there is not offline cache token.

Constants

ConstantValueDescription
LOAD_NO_NETWORK_IO1 << 26

This load flag inhibits fetching from the net. An error of NS_ERROR_DOCUMENT_NOT_CACHED will be sent to the listener's onStopRequest if network IO is necessary to complete the request.

This flag can be used to find out whether fetching this URL would cause validation of the cache entry via the network.

Combining this flag with LOAD_BYPASS_LOCAL_CACHE will cause all loads to fail. This flag differs from LOAD_ONLY_FROM_CACHE in that this flag fails the load if validation is required while LOAD_ONLY_FROM_CACHE skips validation where possible.
LOAD_CHECK_OFFLINE_CACHE1 << 27

This load flag causes the offline cache to be checked when fetching a request. It will be set automatically if the browser is offline.

This flag will not be transferred through a redirect.
LOAD_BYPASS_LOCAL_CACHE1 << 28This load flag causes the local cache to be skipped when fetching a request. Unlike LOAD_BYPASS_CACHE, it does not force an end-to-end load (That is, it does not affect proxy caches).
LOAD_BYPASS_LOCAL_CACHE_IF_BUSY1 << 29This load flag causes the local cache to be skipped if the request would otherwise block waiting to access the cache.
LOAD_ONLY_FROM_CACHE1 << 30This load flag inhibits fetching from the net if the data in the cache has been evicted. An error of NS_ERROR_DOCUMENT_NOT_CACHED will be sent to the listener's onStopRequest in this case. This flag is set automatically when the application is offline.
LOAD_ONLY_IF_MODIFIED1 << 31

This load flag controls what happens when a document would be loaded from the cache to satisfy a call to AsyncOpen. If this attribute is set to true, then the document will not be loaded from the cache. A stream listener can check isFromCache() to determine if the AsyncOpen will actually result in data being streamed.

If this flag has been set, and the request can be satisfied via the cache, then the OnDataAvailable events will be skipped. The listener will only see OnStartRequest followed by OnStopRequest.

Methods

isFromCache()

Obsolete since Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

This method finds out whether or not this channel's data is being loaded from the cache.

boolean isFromCache();
Parameters

None.

Return value

Returns true if this channel's data is being loaded from the cache, otherwise returns false. This value is undefined before the channel fires its OnStartRequest notification and after the channel fires its OnStopRequest notification.

See also

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:95 次

字数:9569

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文