[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [wsrp] Caching of resources
Hi Rich, good start, but I've some questions: - why don't we allow access to the nav state? I think encoding the current nav state of only this portlet in the URL does not hurt caching as the nav state cannot be changed by a gR call - why don't we allow to have other resource URLs in the response of cachable resource markup? Stefan Rich Thompson wrote: > > Here is the proposal I promised to draft: > > > > Rich > ------------------------------------------------------------------------ > > Next change > > > 6.3.1 Caching of resources > > For performance reasons the Consumer might prefer to cache resources > across a series of requests. The Producer passes information about the > cacheability of the resource representation in the cacheControl > structure returned in a MarkupContext structure. The Consumer can infer > from this information when it may cache the resource and when the cached > resource needs to be invalidated and updated by a new call to > *getResource*. All of the cache semantics described in [Section 6.2.1] > <#_MarkupCaching> applies to the caching of resources as well. > > In addition to Consumer caching, both browser and web-based caching may > apply to the resource. Since resources can contain URLs which need to be > written using either the template or Consumer URL rewriting techniques > discussed in [Section 10.2] <#_URL_Considerations>, the URI used by the > browser to fetch the resource will likely contain state information > which virtually guarantees the resource will not be retrieved from the > cache on subsequent accesses. [Section 10.2.1.1.3.6] > <#_wsrp-cacheableResource> defines the wsrp-cacheableResource portlet > URL parameter for the purpose of increasing the hit ratio for the > browser and web caches of appropriate resources. > > > 10.2.1.1.3.6 wsrp-cacheableResource > > This boolean (default value is false) provides an indication to the > Consumer that it can limit the amount of state it places on the URI for > the resource such that the likelihood of a subsequent browser access > being served from a browser/web cache is increased. This portlet url > parameter can only be set to true if the resource contains no URIs > referring back to the portlet and if the resource, when served using the > *getResource* operation, does not require the Consumer to supply the > navigationalContext structure. When the wsrp-cacheableResource portlet > url parameter has a value of true, the Consumer SHOULD NOT include any > navigationalContext structure on a related invocation of the > *getResource* operation. > > Note that this portlet url parameter only impacts Consumer URL rewriting > as the templates related to resource URIs have to allow for resources to > access the excluded state/functionality. > > If both the wsrp-cacheableResource and wsrp-requiresRewrite portlet URL > parameters are set to true, the Consumer MUST parse the resource for the > purpose of rewriting namespace prefixing as per [Section 10.3] <#__Toc77>. > > > 10.2.3 Extended BNF Description of URL formats > > These definitions utilize the syntax defined in ISO/IEC 14977 ^[21] > <#_ftn21> > > ConsumerURL = BeginToken (RenderURL | ActionURL | ResourceURL | > ExtensionURL) EndToken > > BeginToken = "wsrp_rewrite?" > > EndToken = "/wsrp_rewrite" > > RenderURL = "wsrp-urlType=render" {("&" | "&") (CommonPair | > RenderPair)} > > ActionURL = "wsrp-urlType=blockingAction" {("&" | "&") (CommonPair | > ActionPair)} > > ResourceURL = "wsrp-urlType=resource" {("&" | "&") (CommonPair | > ResourcePair)} > > WSRPURLTypes = "render" | "blockingAction" | "resource" > > ExtensionURL = "wsrp-urlType=" (Text - WSRPURLTypes) {("&" | "&") > (ExtensionPair)} > > CommonPair = CommonTextPair | CommonBooleanPair > > CommonTextPair = CommonTextName "=" Text > > CommonTextName = "wsrp-fragmentID" | "wsrp-extensions" > > CommonBooleanPair = CommonBooleanName "=" BooleanValue > > CommonBooleanName = "wsrp-secureURL" > > RenderPair = RenderTextName "=" Text > > RenderTextName = "wsrp-mode" | "wsrp-windowState" | > "wsrp-navigationalState" | "wsrp-navigationalValues" > > ActionPair = ActionTextName "=" Text > > ActionTextName = "wsrp-interactionState" | RenderTextName > > ResourcePair = (ResourceTextName "=" Text) | (ResourceBooleanName "=" > BooleanValue) > > ResourceTextName = "wsrp-url" | "wsrp-resourceID" | "wsrp-resourceState" > > ResourceBooleanName = "wsrp-requiresRewrite" | "wsrp-preferOperation" | > wsrp-cacheableResource" > > ExtensionPair = Text "=" Text > > Text = { "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" > | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" > | "x" | "y" | "z" | "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" > | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" > | "V" | "W" | "X" | "Y" | "Z" | "0" | "1" | "2" | "3" | "4" | "5" | "6" > | "7" | "8" | "9" | "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" > | "%" } > > BooleanValue = (("true" | "1") | ("false" | "0")) > > > > ProducerURLTemplate = {{Text} {ReplacementToken}} > > ReplacementToken = "{" CommonTextName | RenderTextName | ActionTextName > | ResourceTextName | CommonBooleanName | ResourceBooleanName | > ParameterName "}" > > ParameterName = "wsrp-urlType" | "wsrp-portletHandle" | > "wsrp-userContextKey" | "wsrp-portletInstanceKey" | "wsrp-sessionID" >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]