MVC 场景中的 Javascript 事件与回调

2023-12-29

我正在尝试找出一种很好的方法来拥有视图和控制器并最大限度地减少它们之间的联系。

除了一个事件有多个订阅者之外,像这样的 js 代码之间还有什么主要区别吗:

var customers = {
    get: function(callback) {
        $.get('/customers', {}, function(data) { 
            callback.call(this, data); 
        });
    }
};

以及像这样的事件驱动方法(事件对象只是伪代码):

var customers = {
    get: function() {
        $j.get('/customers', {}, function(data) { 
            event.publish('customers.loaded', data); 
        });
    }
};

在这两种情况下,客户对象的消费者都不了解其内部运作方式。一种方式比另一种方式有优势吗?


Event's are回调,但区别在于它们绑定的时间和地点。在第一种情况下,您需要在调用时引用回调get被称为,另外它仅限于single打回来。

在第二种情况下,(假设您使用该伪代码触发事件)您可以在 where 范围之外绑定回调get被调用,允许更强的数据封装。此外,事件支持触发多个回调,以便可以根据访问权限执行不同的函数。customers object.

我建议使用面向事件的解决方案,因为 JavaScript 是一种面向事件的语言。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVC 场景中的 Javascript 事件与回调 的相关文章

随机推荐

  • 从 LiveData 加载后,即使数据保持不变,FastAdapter 也会闪烁

    对于我准备好的问题Github 上的一个简单且有效的示例 https github com afarber android questions tree master TopPlayers 我的示例应用程序使用 okhttp 下载一个包含游
  • JQuery 插件不工作

    所以我有这个插件http www myjqueryplugins com jRating http www myjqueryplugins com jRating我下载了它并在新的空白页面上尝试了一下 看看是否可以做到 有效 现在的问题是我
  • 如何在 Windows 计算机上定义 .pdbrc?

    我该如何定义 pdbrc在我的 Windows 机器上 My pdbrc file alias sl s l alias nl n l alias cl c l 阅读完答案后这个问题 https stackoverflow com ques
  • 使用 CSS 自定义列表项项目符号

    是否可以改变尺寸 li 元素的bullet 看看下面的代码 li list style square I want to change the size of this squared bullet 我似乎找不到任何方法来实现这一目标 我想
  • 如何跟踪 PDPageContentStream 文本输出的位置?

    我正在使用 Java 将输出写入PDDocument 然后将该文档附加到现有文档 然后再将其提供给客户 大部分都运行良好 我在写入时只有一个小问题试图处理内容溢出PDDocument 我想跟踪文本插入到文档中的位置 以便当 光标 超过某个点
  • 类型错误:__init__() 恰好需要 3 个参数(给定 2 个)

    我在这里看到了一些关于我的错误的答案 但它对我没有帮助 我在 Python 课程上绝对是个菜鸟 九月份才开始写这段代码 不管怎样 看看我的代码 class SimpleCounter def init self startValue fir
  • 使用 OpenCV 在给定时间从视频中提取图像

    我的任务是制作一个可以在几秒钟内拍摄视频和时间的实用程序 该实用程序应使用给定的输入从视频中写出 jpeg 图像 例如 让视频名称为abc mpeg提供给工具的时间为20秒 该实用程序应在第 20 秒写出视频中的图像 Import the
  • 图像平铺的缓冲图像

    我想创建一个游戏 其中有许多图像图块可以响应箭头键 我应该使用 BufferedImage 来创建每个单独的图块吗 参考 Java游戏区难度 https stackoverflow com questions 10505000 java g
  • 使用 wkhtmltopdf 从 HTML 生成 Google 网络字体和 PDF

    我在用wkhtml转pdf http code google com p wkhtmltopdf 将 HTML 文件转换为 PDF 格式 它给出了令人惊讶的好结果 渲染 PDF 的效果与 WebKit 完全一样 我在用谷歌网络字体 http
  • Spark-Shell中进度条上的数字是什么意思?

    在我的 Spark Shell 中 当我执行函数时 如下所示的条目意味着什么 Stage7 gt 14174 5 62500 你得到的是一个Console Progress Bar Stage 7 显示您现在所处的阶段 并且 14174 5
  • 为什么 std::forward_list 的拼接整个列表或范围是线性的?

    将一个范围从一个列表拼接到另一个列表可以在恒定时间内完成 但代价是size 的复杂度是线性的 C 11 改变了这种情况std list通过要求size 为常数时间 例如 这破坏了 gcc 的实现 请参阅 C 0x std list size
  • matplotlib:设置图形的宽度或高度而不改变纵横比

    我想选择图形的宽度 同时仍然让 matplotlib 选择它认为合适的纵横比 我知道的每种改变图形大小的方法都需要一个 宽度 高度 元组 这会强制一定的纵横比 有没有办法只指定宽度 或仅指定高度 并允许 matplotlib 选择合适的纵横
  • 如何使 Windows 8 桌面应用程序显示在 Metro UI 中(如任务管理器)?

    最近我注意到Windows 8任务管理器可以在Metro UI中显示 要求是您必须将其设置为始终位于顶部 通过 选项 gt 始终位于顶部 菜单 设置总在最前面后 您可以在Desktop中启动任务管理器 切换到Metro 可以看到任务管理器显
  • 传递对象时防止在 PureComponent 上重新渲染

    使用时纯组件 https reactjs org docs react api html reactpurecomponent与功能组件相比 您的优势在于 当父级更新时 组件并不总是呈现 它实际上仅在组件属性发生更改时才会渲染 在本例中仅当
  • ReactJS:测试包含组件的组件

    我使用 Jest 来测试我的 React 组件 但是 我不知道 或没有看到任何内容 如何测试将方法传递 作为 prop 到子组件的组件 例如 我有 Form MemberList Member FormButton 代码中类似的东西 For
  • 尽管在 pyodbc.dataSources() 中列出,但未找到驱动程序

    我尝试使用 pyodbc 访问 MS Access mdb 数据库 我已经设置了 ODBC 驱动程序 该驱动程序已注册到我的 DSN 我可以在pyodbc dataSources sources pyodbc dataSources dsn
  • 量角器页面对象继承

    鉴于我正在利用页面对象模式构建我的 angularjs Protractor e2e 测试套件 我尽可能合理地将页面对象代码分离在不同的文件中 启用页面对象继承的好方法是什么 javascript经典继承 基于 Object create
  • Express GET 路由不适用于参数

    我是 Express 和 Mongoose 的新手 我目前正在开发我的第一个项目 这不是教程 我遇到了问题 我有多个路由 它们在 index js 中定义如下 app use api client require routes client
  • 如何从字符串中读取 NSDate?

    我有带有日期的字符串 并且想将它们解析为 NSDate 对象 有没有办法做到这一点 我看过 NSDate 和 NSScanner 但没有看到任何可以从字符串中读取它的东西 在cocoa sdk中 通常是 如果您想要一个日期并且有一个字符串
  • MVC 场景中的 Javascript 事件与回调

    我正在尝试找出一种很好的方法来拥有视图和控制器并最大限度地减少它们之间的联系 除了一个事件有多个订阅者之外 像这样的 js 代码之间还有什么主要区别吗 var customers get function callback get cust