2010-05-02 2 views
0

Я обычно придерживаюсь довольно «модульного» подхода к созданию приложений, и недавно я начал работать с jQuery. Приложение, над которым я работаю, будет довольно большим, поэтому, когда это возможно, я пытаюсь разбить фрагменты на отдельные файлы/модули. Одним из примеров этого является диалог «Пользовательские настройки».Загрузка страницы в диалоговом окне jQuery

Это диалоговое окно имеет форму, несколько вкладок и довольно большое количество полей ввода, поэтому я хочу развить его в отдельном HTML-файле (на самом деле PHP, но его можно считать HTML для целей этого примера) , Это целая страница сам по себе со всеми тегами можно было бы ожидать, такие как:

<html><head></head><body></body></html> 

Так что я теперь могу развиваться, что я хочу быть, диалог отдельно от базового приложения. В этом диалоговом окне есть собственный Javascript (на самом деле много Javascript) в голове, с jQuery $ (document) .ready() {} capture и т. Д. Все работает безупречно изолированно. Однако, когда я пытаюсь загрузить модальный диалог jQuery со страницей (внутри основной страницы приложения), как и следовало ожидать, возникают проблемы.

Вот краткое, очень простой, пример того, что он выглядит следующим образом:

editUserDialog.load ("editUser.php", {id : $('#userList').val(), popup : "true"}, function () { 
    editUserDialog.dialog ("option", "title" , "Edit User"); 
    editUserDialog.dialog ('open'); 
}); 

(я передаю в флаг «всплыть» на страницу, так что страница может определить его контекст - т.е. как страница или внутри диалогового окна jQuery).

Вопрос 1: Когда я переместил код с «головы» на «тело» (на странице editUser.php), он фактически работал по большей части. Казалось, что jQuery вызывал функцию $ (document) .ready() в контексте тела загруженного файла, а не головы. Это плохая идея?

Вопрос 2: Является ли мой процесс для создания этого приложения просто полностью испорченным для начала?

Я искал сеть, пытаясь найти документ «лучших практик» для создания достаточно больших приложений с использованием jQuery/PHP без большого успеха, поэтому, возможно, есть что-то, что кто-то знает об этом, как-то пропустил.

Благодарим за внимание, когда я пытаюсь описать проблемы, с которыми я столкнулся, и надеюсь, что я точно описал проблему.

ответ

0

Я работал над большими веб-приложениями, которые сильно использовали диалоги, которые выходили поверх других страниц. В общем, я бы избегал этого шаблона в пользу просто перехода на отдельную страницу, а затем навигацию назад, когда пользователь будет взаимодействовать с «вспомогательной страницей». Диалоги вызывают такие проблемы, как ухудшение производительности, сложности в дизайне/разработке/использовании пользовательского интерфейса и потеря полезной экранной недвижимости. И они действительно не дают много преимуществ ИМО.

Смежные вопросы