Hi Diego, Thanks for your feedback.
Actually, yes, the move to git + lighthouse has slowed things down quite a bit. And a couple of bug fixes in events slowed things even more. Afaik, JDD has a port of your patch in his own repositiory (http:// github.com/jdalton/prototype/tree/master/src/event.js). Would you mind letting us know if it's fit for core ? Thanks, Tobie On May 9, 2:05 am, Diego Perini <[EMAIL PROTECTED]> wrote: > Samuel / Tobie, > > Don't know if everything was cleared in our latest conversations > or there are further doubts or problems implementing this. > > I would like to know if something has stopped this and > if I can do something else on the subject. > > Thank you. > > Diego Perini > > On 13 Mar, 20:53, Diego Perini <[EMAIL PROTECTED]> wrote:> Samuel, > > on Opera the stylesheet fix is in some way documented > > somewhere, just don't remember where...but the "disabled" > > property seemed a good hook to me when I answered that post. > > > For the reasons about using the "onreadystatechange" event, > > enable "Staus Bar" writing if you are using IE 7, and > > then run this small code (IE only obviously): > > > [script type="text/javascript"] > > document.onreadystatechange = function () { > > if (this.readyState == 'complete') { > > status += ' * ' + event.type; > > } > > > }; > > > window.onload = function () { > > status += ' * ' + event.type; > > > }; > > > (function () { > > try { > > document.documentElement.doScroll('left'); > > } catch(e) { > > setTimeout(arguments.callee,0); > > return; > > } > > status += ' * doScroll';})(); > > > [/script] > > > I used the status bar to log the event sequence > > because the "alert()" will just obfuscate things. > > > If you look at the output of the above you will > > see that my "doScroll" method will always fire > > last, the first always being "readystatechange". > > > If you now insert an image in the above code or > > make the page much longer, than "doScroll" will > > fire as first instead. Not always though... > > > This is the reason the "onreadystatechange" method > > used in combination is essential. Without it you > > cannot ensure the "dom:loaded" will fire before > > "onload" as various tickets already confirms. > > > And don't look to others implementation, I tried > > hard to explain this to them too, unfortunately > > english is not my native language so I may have > > explained this wrong, or they have evidences > > I am wrong but haven't show me where. > > > I may look a bit paranoid in adding this, nobody > > write empty pages, it seems an edge case that will > > never show up in real world, however, trust me a > > page without images is enough to destroy our > > expectations very soon. B/F buttons too. > > > The "IEContentLoaded" will help with many of these > > "magic" IE situations, we just need to use all the > > pieces, not just part of it. > > > Thank you for your time listening...cooperation is king. > > > Diego Perini > > > On 13 Mar, 07:52, Samuel Lebeau <[EMAIL PROTECTED]> wrote: > > > > Diego, feel free to complete/modify the patch I submitted if you find > > > something missing or incorrect. > > > This was just an attempt to concretise all that was said here and on > > > jQuery group. > > > > It would be great if we could find a way to actually test this > > > stylesheet issue, for instance by using jstest.rb's SlowServlet > > > serving a stylesheet file with some special rule... > > > > Regards, > > > > Samuel > > > > Le 13 mars 08 à 02:17, Tobie Langel a écrit : > > > > > Hi Diego, > > > > > Thank you very much for the feedback so far. > > > > > I'd love to hear your comments on Samuel's proposed patch. > > > > > Best, > > > > > Tobie > > > > > On Mar 13, 1:24 am, Samuel Lebeau <[EMAIL PROTECTED]> wrote: > > > >> I attached a patch (http://dev.rubyonrails.org/ticket/9394) that > > > >> fixes > > > >> IE event handlers calling order (ensure FIFO) and tends to fix > > > >>dom:loadedafter window.onload issue. > > > >> It uses document.doScroll as you suggested and waits for stylesheets > > > >> to load on Opera / non-nightly WebKit. > > > >> Test for event handlers calling order pass on all platforms, but I > > > >> didn't had much time to test if stylesheets are actuallyloaded. > > > >> I guess this should do the trick as it's inspired by jQuery whose > > > >> implementation is working fine. > > > > >> Best, > > > >> Samuel Lebeau > > > > >> Le 12 mars 08 à 18:02, Diego Perini a écrit : > > > > >>> Tobie, > > > >>> the following is a patch to current "event.js" in Prototype 1.6.x > > > >>> that should do the trick for primary documents: > > > > >>> --- event.js.orig 2008-03-10 18:39:44.000000000 +0100 > > > >>> +++ event.js 2008-03-10 19:06:49.000000000 +0100 > > > >>> @@ -308,12 +308,23 @@ > > > >>> } > > > > >>> } else { > > > >>> - document.write("<script id=__onDOMContentLoaded defer > > > >>> src=//:><\/ > > > >>> script>"); > > > >>> - $("__onDOMContentLoaded").onreadystatechange = function() { > > > >>> + // trying to always fire before onload > > > >>> + document.onreadystatechange = function() { > > > >>> if (this.readyState == "complete") { > > > >>> this.onreadystatechange = null; > > > >>> fireContentLoadedEvent(); > > > >>> } > > > >>> }; > > > >>> + (function() { > > > >>> + try { > > > >>> + // throws errors until after ondocumentready > > > >>> + document.documentElement.doScroll("left"); > > > >>> + } catch(e) { > > > >>> + setTimeout(arguments.callee, 50); > > > >>> + return; > > > >>> + } > > > >>> + // no errors, fire > > > >>> + fireContentLoadedEvent(); > > > >>> + }); > > > >>> } > > > >>> })(); > > > > >>> iframes must be handled differently, and there are Opera and > > > >>> Safari improvements that you may be interested too, see here > > > >>> for an explanation of the problem and a solution: > > > > >>>http://groups.google.com/group/jquery-dev/browse_thread/thread/ad7e75 > > > >>> ... > > > > >>> If you are interested in my dev site I have a "tester.php" that may > > > >>> be useful if you need to dig deeper in the problem, however the > > > >>> reason an event is still needed is because a javascript timer is > > > >>> still unpredictable even if we set it's timeout to 0ms. > > > > >>> Regards, > > > > >>> Diego > > > > >>> On 25 Feb, 07:37, Tobie Langel <[EMAIL PROTECTED]> wrote: > > > >>>> Hi, > > > > >>>> I'm all for it myself. > > > > >>>> I even had implemented it for 1.6.0.2 and had to revert because it > > > >>>> was > > > >>>> making our tests fail. > > > > >>>> The problem is that the doScroll technique can trigger the > > > >>>>dom:loaded > > > >>>> event *after* window.onload, notably on short pages. Delegating to > > > >>>> window.onload in that case doesn't work, as it's not ordered in > > > >>>> IE... > > > >>>> so that's the first thing to solve. > > > > >>>> Not impossible, of course, so any implementation that passes our > > > >>>> current tests is more than welcomed. > > > > >>>> Best, > > > > >>>> Tobie > > > > >>>> On Feb 25, 4:21 am, Diego Perini <[EMAIL PROTECTED]> wrote: > > > > >>>>> Don't know if you already tried the doScroll("left") trick, > > > >>>>> many frameworks already implemented it, YUI and > > > >>>>> jQuery to name some, but Mootools have it in SVN > > > >>>>> and tools like sIFR already uses it. > > > > >>>>> I proposed this to solve the fact that IE is missing > > > >>>>> such useful native method. I know many methods > > > >>>>> exists, each method having his own advantages > > > >>>>> and disadvantages. This trick is not different in > > > >>>>> that respect but it has some tasty advantages. > > > > >>>>> This is a link to the original code and trick: > > > > >>>>> http://javascript.nwbox.com/IEContentLoaded/ > > > > >>>>> And here you can find a tentative test case / tester if you > > > >>>>> want to try out your own code / modifications: > > > > >>>>> http://javascript.nwbox.com/IEContentLoaded/tester.php > > > > >>>>> The current pre-loadedjavascript is only for IE, but you > > > >>>>> may paste your code in the text area and see if > > > >>>>> it fires correctly in your preferred browser. > > > > >>>>> Sorry for the colors...and shortness in general. > > > > >>>>> Diego Perini --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype: Core" group. To post to this group, send email to prototype-core@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/prototype-core?hl=en -~----------~----~----~----~------~----~------~--~---