我倾向于采用相当“模块化”的方法来构建应用程序,最近我开始使用jQuery。我正在处理的应用程序将会相当大,所以我试图在可能的情况下将碎片拆分为单独的文件/模块。其中一个例子是“用户设置”对话框。
此对话框有一个表单,一些选项卡和相当多的输入字段,因此我想在单独的HTML文件中开发它(实际上是PHP,但出于本示例的目的,它可以被视为HTML)。这是一个完整的页面,其中包含您期望的所有标记,例如:
<html><head></head><body></body></html>
所以我现在可以开发,我想要的是,对话框与基础应用程序分开。这个对话框还有自己的Javascript(事实上很多Javascript),jQuery $(document).ready(){}捕获等等。一切都完美无缺。但是,当我尝试使用页面(在主应用程序页面内)加载jQuery模式对话框时,正如人们所预料的那样,麻烦随之而来。
以下是一个简短,非常简单的示例:
editUserDialog.load ("editUser.php", {id : $('#userList').val(), popup : "true"}, function () {
editUserDialog.dialog ("option", "title" , "Edit User");
editUserDialog.dialog ('open');
});
(我正在向页面传递一个“弹出”标志,以便页面可以确定其上下文 - 即作为页面或jQuery对话框内部。)
问题1 :当我将代码从“head”移动到“body”(在editUser.php页面中)时,它实际上大部分工作。似乎jQuery在加载文件的主体而不是头部的上下文中调用$(document).ready()函数。这是个坏主意吗?
问题2 :我的构建此应用程序的过程是否完全有缺陷?
我已经在网上试图找到一种“最佳实践”类型的文档来构建使用jQuery / PHP的相当大的应用程序但没有取得很大的成功所以也许有其他人知道的东西我已经知道了不知何故错过了。
感谢我在试图描述我遇到的问题时对我表示感谢,并希望我已经准确地描述了这个问题。
答案 0 :(得分:0)
我曾经在大型Web应用程序上工作,这些应用程序大量使用了弹出其他页面的对话框。一般情况下,我会避免这种模式,只是导航到一个单独的页面,然后在用户完成与“子页面”的交互时导航回来。对话框会导致诸如性能下降,UI设计/开发/使用的复杂性以及可用屏幕空间丢失等问题。而且他们并没有真正提供IMO的很多优势。