[Zope] More on understanding conflicts
Dennis Allison
allison at shasta.stanford.edu
Wed Dec 21 13:07:08 EST 2005
On Wed, 21 Dec 2005, Chris McDonough wrote:
> On Dec 21, 2005, at 11:38 AM, Dennis Allison wrote:
>
> >
> > Chris,
> >
> > You asked about frames a while back and I responded in the
> > affirmative.
> > I am sure I mentioned that we use frames and framesets and
> > explained that
> > we use a bit of Javascript to manage loading individual frames
> > rather than
> > loading the entire frameset whenever possible.
>
> Eek. Sorry, I don't remember this. Context is hard to keep over the
> course of several weeks/months, of course. And my brain is going
> with my age. I don't mean to be a nag (really, I understand this is
> hard), but I asked two emails ago "do you use frames?" and you didn't
> answer that question directly in your response at all; only by way of
> teasing it out of you by asking if it was an IFRAME in a followup was
> the fact that this app is a frame-based one re-revealed to me. In
> general, it would be very helpful if you could answer the questions
> that are asked when they're asked even if they reveal the fact that
> I'm a doddering old man and can't remember things from moment to
> moment, Otherwise it's difficult (and honestly a bit frustrating) to
> try to help you.
Sorry if I appeared unresponsive--the fact that we use frames is hardly a
secret. I suppose that it would be helpful to make up soem summary of
features for ongoing threads like this one.
>
> In any case, typically the problem with frames only reveals itself
> when the entire frameset is loaded or the body of one frame causes
> the other frames to load. Your javascript may not be helping here...
> it could be hurting. For example, if a user reloads the "main" frame
> (say as a result of a POST request) and by doing so, during its re-
> rendering, it causes two other frames to refresh themselves due to an
> inline script function in the body of the main frame, that's the
> moral equivalent of reloading the frameset entirely. You have a tiny
> bit more control, e.g. maybe you could set a Javscript timer to
> reload the other frames in a "staggered" way where you reload one,
> then the other after a certain number of seconds. But otherwise it's
> the same problem. Hard to know what's going on there.
By convention the primary content frame does not cause other frames to
re-render but there are multiple implementors and creaping featurism
which may have changed that. The navigation_box frame we have been
discussion gets re-rendered on a navigation change (duh) and may initiate
re-rendering of a tabs_frame. Except for the full frameset rendering,
we are likely to be fairly conflict clean. I can look in the logs and
tell... Might be interesting.
> > Still, your point about
> > the multiple threads due to the requests from individual frames when a
> > frameset gets rendered is a valid one and one I have not given the
> > weight
> > it deserves.
> >
> > Issues around multiple threads and concurrency is going to be more and
> > more of a problem as we move to smarter clients and AJAX-like
> > implementations.
>
> "Smart clients" perhaps. But Ajax is supposed to allow you to do
> interesting things *without* reloading the page, and because (to my
> knowledge) no current Javascript implementation can make a request
> asynchronously, so you can only make one request at a time from
> within a given browser document. So using Ajax shouldn't cause
> *more* conflicts; it should cause fewer. Unless of course your Ajax
> calls emanate from different frames (different DOM "documents").
> Then you're back in the same boat (depending on the Javascript
> implementation, I suppose). It's really a problem with frames (or
> more generally, multiple documents at the same time) rather than with
> Ajax.
I did not know that XMLHttp interactions were asynchronous but serialized.
Most browsers can make multiple simultaneous requests so I'd assumed that
XMLHttp would just grab a connection and go and that multiple requests
can be in progress simultaneously.
> > It looks like there are several small things I can do to improve the
> > present system's conflict rate, but, absent some major structural
> > changes,
> > I won't be able to drive them to O(zero). Fortunately, while the
> > level of
> > conflicts is high, they are infrequent relative to the number of hits
> > served, and most are resolved by the normal Zope conflict resolution
> > mechanism.
>
> Well, that's good. Does that mean I'm off the hook? ;-)
Not really off the hook as issues still remain and you are a valuable
resource. :-) I need to spend some time thinking about the issues an do
some cautious experimentation and testing.
More information about the Zope
mailing list