У нас есть небольшое мобильное приложение с двумя панелями. Страница контейнера предоставляет скелет, а панели реализованы как IFrames. Нам нравятся iframes, потому что они создают область, разбивая панели, но наш текущий метод общения между панелями является неприятным. Панель 1 назначает свои вызывающие параметры в глобальной области, затем вызывает Panel2.location() для загрузки страницы. Обработчик onload Panel2 ищет ранее назначенные параметры вызова и делает это бизнес. Если есть ошибка HTTP, вызывающий не знает, и ошибка идет прямо на экран.Могу ли я, должен ли я использовать обещания для загрузки iframe?
С обещаниями я мог бы сделать что-то гораздо приятнее. Загрузка Panel2 - это асинхронная операция. Я хотел бы быть в состоянии сделать это ...
Panel2.myAsynchLoad("myNewPage.html").then(
function(myNewPage){
myNewPage.someFunc(calling, parameters, passed, directly);
},
function(err){
...errors notified to caller
}
);
Но писать myAsynchLoad(), я бегу прямо в проблемы. Если я загружу panel2 с помощью location(), у меня, кажется, нет способа получить ошибки HTTP. Если я использую XmlHttpRequest и document.write(), это не обычная загрузка страницы, а скрипты на новой странице не регистрируются.
Есть ли хороший способ сделать это? Должен ли я быть здесь в первую очередь? Ответы не используются jquery.
если ничего другого, с помощью первого метода вы должны быть может получить ошибки с помощью https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror - хотя на этой странице нет никаких указаний о том, насколько универсально это –
. Я не думаю, что обещает решать все, что вы не могли сделать wi th обратных вызовов здесь. То есть обещания кажутся ортогональными вашей проблеме. Можете ли вы, и должны ли вы использовать обещания для всего? Да! ([Почти] (http://www.w3.org/2001/tag/doc/promises-guide#when-not-to-use)). – jib