Nevermind, solved my RPC-woes by copying the policy file to the web-
app root. Ugly, but down to 2 requests.

On Aug 7, 8:50 pm, George Georgovassilis <g.georgovassi...@gmail.com>
wrote:
> This occurred to me also when I started cutting down the requests: you
> cannot do the initial selection on the server as HTTP proxies will
> then see only one permutation: the first one that is ever retrieved by
> them.
>
> I've reduced the total number of HTTP requests required to load to
> just 2 (1 for the initial module html and 1 for the .cache.html), but
> as stated earlier, inlining does not work as smoothly as Bruce (and
> for that matter, me also) wants it to. First you have to (manually/ant
> task) change the strings in nocache.js to prepend the actual path to
> XYZ.cache.html, and then RPC will get back to you because
> the .cache.html scripts disagree with the serialization policy about
> the service entry points.
>
> So, is there a clean way?
>
> On Aug 7, 6:03 pm, John Tamplin <j...@google.com> wrote:
>
> > On Fri, Aug 7, 2009 at 11:39 AM, Arthur Kalmenson 
> > <arthur.k...@gmail.com>wrote:
>
> > > I don't think firebug counts the initial request to fetch the host
> > > page, so two requests. One for the nocache.js and another for the
> > > cachable HTML. With the inlining of the nocache.js file, you could get
> > > it down to 0 requests if the retrieved page is cached forever.
>
> > Well, since it can't be strongly named (if it was then the page with the
> > link would have to be weakly cached for when it changed), the host page
> > can't be cached forever but it can be cached based on the frequency you
> > might need to update it.  Note that you need to keep the old compiled script
> > around for as long as the host page might be cached (and any server
> > resources it might need, which makes server RPC changes difficult), since
> > caches with the old host page will be referring to the old compiled output.
>
> > > Are you saying to inline the generated JS in the host page too? How
> > > could you do that? Don't you need the selector script to pick the
> > > correct compiled version? Maybe I'm just not understanding what you
> > > mean.
>
> > See the example below for how it currently works and the change usign
> > server-side selection.
>
> > The problem is that the browser will fetch foo.html and get the proper
> > compiled output for their browser/locale/etc.  An intervening cache, say at
> > an ISP, will then return that foo.html response to a different user with
> > different parameters.  As I mentioned in the other message, you have to
> > either make the host page uncacheable (which is only feasible with small
> > compiled scripts) or rely on caches honoring the Vary headers, which is
> > problematic on the Internet in general though might be feasible if you
> > control the network your users use to access it.
>
> > Currently you have a host page, say Showcase.html, that is cached based on
> > the frequency you expect to update it and contains a reference to the
> > selection script.
> > ...
> > <script language='javascript' src='showcase/showcase.nocache.js'></script>
>
> > That then fetches the selection script, which is cached based on the
> > frequency you expect to update the app but with must-validate set and
> > executes in the browser, and chooses a strong-named JS file for the compiled
> > output, say XYZ.cache.html.  That file is then cached for 1 year ("forever"
> > according to the HTTP spec).
>
> > In the new scheme, you have a host page that is generated by the server from
> > a template.  That is mark cacheable for the shorter of the time you expect
> > to update the host page template or recompile your app, with must-revalidate
> > set.  It directly includes a script tag referencing XYZ.cache.html, where
> > the server made the deferred binding decision based on the information
> > available in the request.  In the typical case, it will use the User-Agent
> > header and perhaps the Accept-Language header and the locale query parameter
> > in the URL.
>
> > Since the results of the request for Showcase.html now depend on those
> > parameters of the HTTP request, you have to make sure that a cache doesn't
> > return a previous copy served to someone with Firefox to the next guy to ask
> > for it who might be using Safari.  One way to do that is to make sure it
> > isn't cached at all (or at least with must-validate), and the other is to
> > rely on the caches to correctly interpret Vary headers so they know that the
> > response you returned may be different if those headers are different.  As a
> > side note, it doesn't know that you don't care about the difference between
> > IE 7.0 and IE 7.0.1 (making these up so you get the point), or even the
> > screen resolution that some user agents send in the request, so even caches
> > that accept the Vary header will be less effective.  There are other ways
> > around it with newer standards, but even fewer of the caches out there will
> > make use of those features so it will be a while before they are actually
> > useful.
>
> > --
> > John A. Tamplin
> > Software Engineer (GWT), Google
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to