Tag: 设计模式

Javascript文件依赖项 – 选择性加载资源文件并防止重复

这可能更像是一场哲学辩论,但这就是我所拥有的: 共享Javascript资源库以调用Web服务的两个控件。 它们通常彼此结合使用,但并非总是如此。 他们都引用的javacsript文件不容易分开。 不应将javascript文件添加到应用程序中的每个页面。 理想情况下,我会在控件之间划分web服务,并且每个调用一个js资源文件,仅针对他们需要的function。 我想知道是否有一种明显更好的方式让我失踪…… 我最简单的forms是: Control1 Other stuff Control2 编辑 如果这提供了一个有用的方法,我可以使用jQuery。 使用ASP.NET

您网站上的自定义jQuery脚本中有多少行代码? 多少钱太多了?

对于我们的网站,我使用了大量的jQuery – 现在我在基础库上查看340行jQuery代码。 多少是太多了? 我将添加更多,何时开始尝试压缩代码并最终转移到OOP?

jQuery(反)模式:使用字符串操作构建选择器

我常常发现自己构建了带字符串操作的选择器(split,search,replace,concat,+,join)。 是好是坏?

jQuery如何返回一个数组并仍然是一个jQuery对象?

我试图重现jQuery(1.7.1)对象结构,以更好地理解它是如何工作的。 我有以下代码: (function (window, undefined) { var document = window.document, navigator = window.navigator, location = window.location; window.myclass = (function () { var __con = function () { return new __con.fn.init(); } __con.fn = __con.prototype = { ‘init’ : function () { return this; }, ‘test’ : function () { console.log(‘test1’); return this; } } __con.fn.init.prototype […]

在MVC中提供用户通知/确认的推荐方法是什么?

我遇到的一个常见情况是在用户执行操作后通知他们成功后向用户提供通知/确认。 例如,假设用户提供反馈表单的反馈,然后单击“ 提交反馈” 。 您可能希望在执行某些validation后显示“感谢您的反馈”消息,例如他们在数据库中有一封有效的电子邮件。 一些伪代码: public ActionResult SubmitFeedback(string Feedback, int UserID) { MyDataContext db = new DataContext() if(db.usp_HasValidEmail(UserID)) //Check user has provided a valid email return View(“Index”); //Return view and display confirmation else ModelState.AddModelError(“InvalidEmail”, “We do not hold an email record for you. Please add one below”); return View(“Index); } 我理解如何通过使用Html.ValidationMessage等validation条目。这很好,我通常检查无效的条目,无论是在客户端使用jQuery还是在我的Action早期(即在我开始访问数据库之前)并退出我的操作,如果有是无效的条目。 但是,所有条目都有效并且您想要显示确认消息的情况如何? 选项1 : […]

用于处理私有函数的jQuery插件设计模式(通用实践?)

我一直在开发jQuery插件很长一段时间了,我想我现在知道如何设计一个好的插件。 然而,有一个问题一直困扰着我,那就是如何以强大而优雅的方式处理私有function。 我的插件通常看起来像这样: (function($) { $.fn.myplugin = function(…) { … // some shared functionality, for example: this.css(‘background-color’, ‘green’); … }; $.fn.mypluginAnotherPublicMethod = function(…) { … // some shared functionality, for example: this.css(‘background-color’, ‘red’); … }; }(jQuery)); 现在我的问题是:如何巧妙地干掉共享function? 一个明显的解决方案是将它放在插件命名空间中的函数中: var fill = function($obj, color) { $obj.css(‘background-color’, color); }; 虽然这个解决方案很有效且命名很好,但我真的不喜欢它。 原因很简单:我必须传递jQuery对象。 即我必须这样称呼它: fill(this, ‘red’); 虽然我想这样称呼: this.fill(‘red’); 当然,我们可以通过简单地将fill放入jQuery.fn来实现这个结果。 […]