Я использую phonegap / jquery / jqtouch для разработки приложения для iPhone. При тестировании приложения с iPhone 3G под управлением iOS 3.0.1 вызовы jquery, которые вносят изменения в DOM (например, 'append ()'), не работают согласованно.
У меня есть тревожный вызов прямо перед вызовом "добавить", и еще один предупредительный звонок сразу после вызова "добавить". Оба оповещения работают согласованно, но вызов 'append' работает случайным образом. Иногда DOM обновляется, а иногда нет. Звонки также не вызывают ошибку. Как будто их игнорируют.
На iPhone 4 с iOS 4.0.2 приложение работает без нареканий.
Приложение должно работать на iOS 3.0 и выше, поэтому я не решаюсь обновить 3G-телефон до iOS 4.0, потому что у меня не будет способа вернуть его на iOS 3.0.1.
Я пробовал оба базовых SDK 3.2 и 4.0. «Цель развертывания iPhone OS» установлена на «iPhone OS 3.0».
Кто-нибудь знает, что может происходить? Любые советы о том, как отладить это?
Спасибо!
Код, вызвавший проблему:
var sample = $('<div></div>').text('sample');
navigator.notification.alert("test 1", "Test", "Dismiss");
$('#test').append(sample);
navigator.notification.alert("test 2", "Test", "Dismiss");
Появляются оба предупреждения «тест 1» и «тест 2», но текст «образец» появляется только иногда.
Я нашел следующую ветку, описывающую проблему. Проблема вызвана медлительностью телефона и доступом к DOM:
http://groups.google.com/group/phonegap/browse_thread/thread/81460667fd771735
Исходя из этой темы, я опробую следующую рекомендацию и опубликую здесь, работает ли она:
$ ('mySelector'). get (0) .innerHTML = 'my html code';