Steve, Ah. That may be the difference. I didn't click sequential down the list (which is telling). I'll give it a try when I get to work tomorrow (where the iPhone is), and let you know.
Chris. On Feb 7, 2008, at 8:34 PM, Steve Finkelstein wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
