[Zope] More on understanding conflicts
Chris McDonough
chrism at plope.com
Wed Dec 21 12:04:05 EST 2005
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.
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.
> 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.
> 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? ;-)
- C
More information about the Zope
mailing list