Hi Chris,

Thanks for the reply.

Unfortunately rebooting the darn thing was my first instinct upon
bumping into this annoying bug. I took the initiative to find 5
colleagues with an iPhone and one colleague with an iTouch -- I was
able to replicate the crashing of Safari on all 6 devices.

I certainly wish I had the technical details worked out, and could
blame it on my cookie code, but I really can't. It might be
coincidence that after I added cookie code, that I was able to
reproduce this crash.

I setup a test page here to further debug, and my browser doesn't
crash here: http://catalyst.httpd.org/iphone.html

However the URL I provided below is still indeed very consistent for
crashing. You just need to sequentially click the names starting from
the first name down to about the 6th or 7th and it'll pop an alert
with document.cookie, then crash.

Tomorrow I will rewrite the cookie handlers and see if that fixes it.
I just really hate abandoning the problem because it would be nice to
know what is consistently crashing mobile safari and if it's possible
to avoid it in future production.

/sf

On 2/7/08, Chris Van Dusen <[EMAIL PROTECTED]> wrote:
>
> This may sound crazy, but have you tried resetting the iPhone(s)?
>
> I had just deployed some code for the iPhone when 1.1.3 came out.  I
> updated the phone, but when I went to test the app in production,
> images were not displaying, and a search was not working.  The QA
> guys updated the iPhone and iPod Touch that they use and didn't have
> a problem.  After resetting, mine worked fine.
>
> Regarding your post about clearing cookies:  I've gotten to the point
> where I would click 'Clear' twice before retesting.  I was talking to
> one of the aforementioned QA guys and he said that he clears cookies,
> goes back to Safari opens a new window and removes the one he was
> testing with before.   Now, I do that too...
>
> hth,
> Chris.
>
>
> On Feb 7, 2008, at 4:12 PM, Steve Finkelstein wrote:
>
> >
> > Chris,
> >
> > that's so darn odd. I'm able to replicate it all the time as soon as I
> > hit the 'Leslie' patient. If I go straight down the list sequentially
> > it consistently crashes on my iPhone. It does on a co-workers as well.
> > I don't even know where to begin to start debugging.
> >
> > /sf
> >
> > On 2/7/08, cvd <[EMAIL PROTECTED]> wrote:
> >> I was able to click all patients with no crash on the iPhone.  I'm
> >> running
> >> 1.1.3.
> >>
> >> Chris.
> >>
> >>
> >> On Feb 7, 2008 1:47 PM, Steve Finkelstein <[EMAIL PROTECTED]> wrote:
> >>
> >>>
> >>>
> >>> If anyone wishes to try to replicate the crash, you can visit a demo
> >>> of the site on http://iphone2.limemedical.com.
> >>>
> >>> If you click on Patient List via the landing page, click on the
> >>> first
> >>> 7+ patients (obviously they aren't real people)
> >>>
> >>> Your browser should and will crash (on the iPhone, won't on the
> >>> desktop)
> >>>
> >>> There's nothing odd about my code that I can find. I'm having an
> >>> extremely difficult time finding what's the cause of it because of
> >>> lack of debugging tools on the iPhone.
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On 2/6/08, Steve Finkelstein <[EMAIL PROTECTED]> wrote:
> >>>> Hey folks,
> >>>>
> >>>> I've been able to replicate a consistent crash with Mobile Safari
> >>>> using 1.1.3 firmware. I'm using the cookie class written by David
> >>>> Flanagan in his highly accredited JavaScript: The Definitive Guide,
> >>>> code can be found here:
> >>>>
> >>>>
> >> http://www.davidflanagan.com/javascript5/display.php?n=19-2&f=19/
> >> Cookie.js
> >>>>
> >>>> I believe the code I've appended at the bottom of this email is the
> >>>> culprit. I basically keep track of visited IDs of an <li>
> >>>> element in a
> >>>> cookie.  In a nutshell for those who don't feel like reading the
> >>>> code,
> >>>> I create a cookie and set its expiration to 24 hours. In it, I
> >>>> have a
> >>>> cookie named visited_data with a value of something like
> >>>>
> >>>> visited_data=visited:1|2|3|4
> >>>>
> >>>> where 1,2,3,4 are the visited IDs.  I have code which can
> >>>> arbitrarily
> >>>> remove ids and add ids. However, on the iPhone .. and iPhone only
> >>>> (cannot replicate on Safari3/Webkit).. if I click enough <li>
> >>>> elements, about 6+, it crashes the browser.
> >>>>
> >>>> Does anyone have any idea what could be causing it? Is the value of
> >>>> the cookie data limited in an iPhone? Is there a more elegant
> >>>> approach
> >>>> to my solution for storing visited status on multiple elements, say
> >>>> 100+ ?
> >>>>
> >>>> Using binary bitmasks has crossed my mind.. but I'm quite
> >>>> reluctant at
> >>>> the moment in that approach because of readability by other
> >>>> developers.
> >>>>
> >>>> Thanks all.
> >>>>
> >>>> /sf
> >>>>
> >>>> code:
> >>>>
> >>>> function _check_status(obj) {
> >>>>
> >>>>         var evt = window.event;
> >>>>         var el  = evt.srcElement;
> >>>>
> >>>>         if (el.tagName == "SELECT") return;
> >>>>
> >>>>         var pid = el.lastChild.id || el.parentNode.lastChild.id;
> >>>>
> >>>>         // Check if patient has been visited
> >>>>         var cookie = new Cookie("visited_data");
> >>>>
> >>>>         // Check if patient has been visited.
> >>>>         if(cookie.visited) {
> >>>>                 // check if particular id has been visited.
> >>>>
> >>>>                         if(!cookie.check(pid)) {
> >>>>                                 cookie.visited += "|" + pid;
> >>>>                                 cookie.store(1);
> >>>>                                 obj.className += " visited";
> >>>>
> >>>>                         } else {
> >>>>                                 var values = cookie.visited.split
> >>>> ("|");
> >>>>                 delete cookie.visited;
> >>>>                                 cookie.visited = '';
> >>>>
> >>>>                                 for(var i=0; i < values.length; i
> >>>> ++) {
> >>>>                         if (values[i] == pid)
> >>>>                         continue;
> >>>>                     else cookie.visited += "|" + values[i] ;
> >>>>                 }
> >>>>                                 cookie.visited =
> >> cookie.visited.substring(1);
> >>>>
> >>>>                                 cookie.store(1);
> >>>>                                 obj.className = "patients";
> >>>>                         }
> >>>>
> >>>>          } else {
> >>>>                         cookie.visited = pid;
> >>>>                         cookie.store(1);
> >>>>                         // User has NOT been visited, enable their
> >> visited status.
> >>>>                         obj.className += " visited";
> >>>>          }
> >>>>
> >>>> }
> >>>>
> >>>>>
> >>>
> >>
> >
> > >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"iPhoneWebDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/iphonewebdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to