我基本上在寻找的是是否有更好的方法来组织和学习。这是我在这里粘贴的代码。想象一个 1800 行长的 javascript 文件,其中包含大约 50 个类似的绑定。
我有一个用于基本单页应用程序的 Java EE 支持的 REST Api。我正在使用 jQuery,下划线用于模板,jQueryUI 用于自动完成和 Blueimp 的 jQuery 文件上传。呈现的 JSP 有 940 行,其中包括<script id="template"></script>
for 模板,总共大约 630 个 DOM 元素。
对于平均计算机配置上的浏览器来说,大约 70 个事件是否非常昂贵?我应该重写所有这些以委托给容器元素吗?超出此范围不会增长太多。
jsp 文件在使用 JSTL 加载之前使用服务器上的大部分内容呈现,而不是加载然后执行 ajax 调用,因为没有太多动态内容不断更新。对于任何重大更新,我都会刷新页面,否则它只是 DOM 附加。
我看到有人说 10k 行代码被认为是一个大应用程序,所以我离得很近。我所有的模板都在<script id="tpl_xxx"></script>
代码中的标签内,它们应该被插入到代码中。我的假设是更容易看到将插入它们的模板,因此将来要对这些模板进行更改的人不必去寻找它们。
我应该将它们放在外部 .html 文件中,然后在运行时加载它吗?
随着所有这些 MVC 框架(如骨干网等)的出现,是否值得重写此代码以置于其中之一?会有显着的好处吗?
目前的代码非常混乱,全局范围内有一大堆变量(缓存的 dom 元素、常量、其他缓存),它基本上破坏了 JSLint,它放弃了大约 6% 的文件扫描。我意识到这很糟糕,但我想知道它是否值得为不是很大的代码付出努力。它针对 IE7+(客户端要求)进行了全面测试,并且运行良好,因此这纯粹是一个开发人员/可维护性/效率/编码实践问题。我希望我可以在这里粘贴代码,但我不能,所以即使是关于我应该瞄准的模糊建议也会有很好的帮助。
代码基本上是下面的 x50,在全局范围内有大量常量用于用户消息、模板名称、缓存的 dom 元素等。
$('#contact-form').submit(function(e) {
e.preventDefault();
var $frm = $(this);
var $submitBtn = $frm.find('a.submit-btn');
var $errorBox = $frm.find('div.error');
var frmSerialized = $frm.serializeObject();
var validStatus = validateContact(frmSerialized);
$frm.find('input, select, textarea').bind("keydown change", function() {
$errorBox.hide();
});
if (validStatus == true) {
busyCursor('show', $submitBtn);
var jsonReq = JSON.stringify(frmSerialized);
$.post($frm.attr('action'), jsonReq, function(data) {
busyCursor('hide', $submitBtn);
if (data.status == ResponseStatus.SUCCESS) {
$('#contact-form-div').addClass('no-display');
$('#contact-confirm').removeClass('no-display');
} else {
if (data.status == ResponseStatus.ERROR) {
showError($errorBox, data.message);
} else {
showError($errorBox, UserMessages.serverException);
}
}
});
} else {
showError($errorBox, validStatus);
}
});
$('#submit-contact').click(function(e) {
e.preventDefault();
$('#contact-form').submit();
});