jQuery 全局事件和性能?

2023-12-20

我正在寻找一种使用 jQuery 显示状态指示器的方法,我在 jQuery Cookbook 中找到了一个解决方案,它显示了这个解决方案

(function($) {
    $(document).ready(function() {
       $('#ajaxStatus')
         .ajaxStart(function() {
            $(this).show();
        })
         .ajaxStop(function() {
            $(this).hide();
        });

        .....
  })(jQuery);

然后它警告说,

如果您在应用程序中遇到性能问题,可能是因为 如果存在很大的事件传播成本 元素数量。在这种情况下,将 global 设置为 false 可能会给你 性能改进。

那么首先我应该使用上面显示的解决方案吗?随着我的网站和 js 代码变得越来越大,这会成为性能问题吗?

我应该避免 jQuery 全局事件,只是像段落中所说的那样将其关闭吗?

最后,在执行 ajax 请求时,你们如何显示一个简单的指示器?


老实说,我认为这种谨慎是valid,但同时也已经过时了。在这里查看 jQuery 源代码:http://github.com/jquery/jquery/blob/master/src/event.js#L290 http://github.com/jquery/jquery/blob/master/src/event.js#L290

它显示了全球事件是如何发生的now处理:

if ( jQuery.event.global[ type ] ) {
  jQuery.each( jQuery.cache, function() {
    if ( this.events && this.events[type] ) {
      jQuery.event.trigger( event, data, this.handle.elem );
    }
  });
}

It used to be:

jQuery("*").add([window, document]).trigger(type, data);

所以它不会触发every像以前一样的元素,这使得大量元素警告成为一个非常现实的问题,它而是循环遍历已注册的元素或事件,并且仅当any已经注册了,所以是much现在性能更好了。


对于您的问题:

那么首先我应该使用上面显示的解决方案吗?随着我的网站和 js 代码变得越来越大,这会成为性能问题吗?

是的,上面的解决方案很好,在我上面概述的全局事件优化之后,我还没有看到足够大的页面来解决这个问题。

我应该避免 jQuery 全局事件,只是像段落中所说的那样将其关闭吗?

不,你几乎可以忽略该段落之后使用的任何 jQuery这个变化 http://github.com/jquery/jquery/commit/cf78e396db1b986360c32fb0ca071a0fb90da064被制作了。

最后,在执行 ajax 请求时,你们如何显示一个简单的指示器?

正如您在问题中所说的那样:)

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

jQuery 全局事件和性能? 的相关文章

  • 向特定客户端发送消息以及消息发送用户

    我是 SignalR 的初学者 我创建了一个基于 SignalR 的基本聊天应用程序 我面临的问题是我想向特定客户端以及发送消息的用户发送消息 这个怎么做 我知道要向特定客户端发送消息 我们可以这样做 Clients Client Cont
  • jquery:选择xpath或将xpath转换为css?

    我需要基于 xpath 选择 或者将 xpath 转换为 css 有插件或者内置功能吗 ex html body div a 4 each 并非所有 xpath 表达式都可以转换为类似 CSS 的选择器 或者不能有效地工作 您可以使用 eq
  • 使用 jquery 在菜单中突出显示当前 url

    我有一个菜单 但我想突出显示当前与 jquery 的链接 var loc window location var lochref topNavigation li a attr href if lochref loc topNavigati
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • Rails3/will_paginate/Ajax - 下一个/上一个链接无法正常工作(这是一个错误吗?)

    我正在遵循 使用ajax分页 http railscasts com episodes 174 pagination with ajax railscast 用于我的 Rails 3 应用程序 一切似乎都运行良好 除了上一个和下一个链接根本
  • 暂时禁用提交按钮

    我有一个将大文件上传到服务器的表单 像这样的事情
  • jquery验证-等待远程检查完成

    当我打电话时 form valid 我连接了远程验证检查 一切正常 但是如果所有其他字段都有效 则表单会通过验证 因为远程检查没有 足够快 返回响应 有没有办法强制 jquery 验证等待任何远程检查完成或挂钩远程检查调用的完成事件 我目前
  • JQuery hide() 和 fadeOut() 、 show() 和 fadeIn() 之间的区别

    我是 jQuery 新手 目前 我正在我的跨平台移动应用程序之一中使用 jQuery 我需要根据各自的条件隐藏和显示我的一些页面内容 我发现以下两种方法对我来说效果很好 myControlId fadeOut myControlId hid
  • 从 thymeleaf 获取数据到模态引导程序、jquery

    我正在尝试获取模态视图的 id 这是为了更新 onclick 元素 但我找不到方法 知道如何为 boostrap 5 完成此操作 或我可以用其他方法吗 谢谢 tr a inactivate a div class modal fade mo
  • 选择变量的嵌套元素 - jQuery

    我希望将变量传递给函数并让函数选择该变量中的元素 我不熟悉这种情况的语法 但是有人可以建议吗 例如 当在容器内单击按钮时 我希望将该容器存储在变量中 好吧 我有那部分 但后来我希望选择该容器中的某个元素 例如 container div e
  • 简单模式对话框中链接的 Tab 键顺序

    我正在使用优秀的 jquery simplemodal 对话框插件来显示项目列表 这些项目包含超链接 除了模式对话框中的链接不会作为选项卡顺序的一部分出现之外 一切都很好 我尝试显式设置 tabindex 但由于某种原因 只有输入元素按 T
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • jQuery 可以在用户输入数字时添加逗号吗?

    当用户输入数字时 如何动态添加逗号 有没有一个好的数字格式化程序可以提供帮助 我必须稍后添加这些数字 所以我最终必须删除一行中的逗号 但屏幕需要显示逗号以提高可读性 运行代码片段以查看其工作情况 input number keyup fun
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • 我可以使用 jQuery 打开下拉列表吗

    对于 HTML 中的下拉列表
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 在 ASP.NET Core MVC 中访问从视图到控制器的隐藏值

    我需要帮助使用 jQuery 从 ASP NET Core razor 视图页面传递隐藏控件值 jQuery 用于获取动态控件选定的值 section scripts

随机推荐

  • 更改 Eclipse 3.5 中的用户代理以安装新软件

    如何在 Eclipse 3 5 中更改用户代理 我尝试添加属性 Dhttp agent 我的用户代理到 eclipse ini 文件 但使用 WireShark 我可以看到用户代理仍然雅加达 Commons HttpClient 3 1 我
  • 将 Scala Stream 转换为新 Stream,它是当前元素与前一个元素的总和

    如何转换整数的 Scala Stream 以便我们拥有一个新的 Stream 其中元素是该元素与前一个元素的总和 例如 如果输入流是 1 2 3 4 则输出流是 1 3 5 7 还有第二个问题 如何使总和使用输出流中的前一个 以便输出为 1
  • Python 多处理应用程序陷入 docker 容器中

    我正在尝试运行一个多处理 Python 应用程序来加速和并行我的任务 我的应用程序使用简单的多处理Pool并在资源有限的 docker 容器中运行 我注意到我的应用程序有时会卡住 它永远不会结束 终止 但没有任何移动 任务停止运行 没有日志
  • JSON解析swift,数组在NSURLSession之外没有值

    我正在尝试使用以下代码快速调用 json webservice 并将其显示在tableview在快速的IOS中 declared as global var IdDEc String string array declared global
  • TinyMCE UTF-8 保存到 MySQL 数据库

    我将 TinyMCE 输入发送到 POST 一个 php 文件 然后将其保存在 MySQL 数据库中 输入具有 UTF 8 土耳其字符 所以当我输入时T rk e在 TinyMCE 输入中并将其发送到 post PHP 后端收到此字符串 p
  • 枚举是否应该具有未初始化的值。

    我们正在争论枚举是否应该具有未初始化的值 例如 我们有 public enum TimeOfDayType Morning Afternoon Evening or public enum TimeOfDayType None Mornin
  • Logstash 文件输入插件

    目前 我正在使用文件输入插件来检查我的日志存档 但文件输入插件对我来说不是正确的解决方案 因为文件输入插件本质上期望该文件是事件流而不是静态文件 现在 这给我带来了很大的问题 因为我的日志存档有 100 000 多个日志文件 而我的 Log
  • 查找访问令牌的过期时间

    有什么方法可以使用图形 api 来查明页面访问令牌或应用程序令牌何时过期 Update 有一个新的 API 端点用于访问有关访问令牌的信息 您可以在这里找到信息 调试访问令牌和处理错误 https developers facebook c
  • 为什么 JavaScript 中带小数的最大位数只有 16

    不久前我在测试一些 HTML 表单时遇到了这个问题 JavaScript 中带小数点的数字的最大位数仅为 16 我尝试过以下方法 var x 12345678912345 6789 x 是 12345678912345 68 仅 16 位数
  • 使用 Conditional 属性标记仅返回任务的异步方法?

    The System Diagnostics ConditionalAttribute对于分割调试代码片段而不需要使用编译器指令确实很有用 但它只与返回的方法兼容void 有没有办法将它 或等效的东西 用于返回 a 的异步方法Task No
  • 请求取消不会传播到云运行容器

    当发送到云运行服务的 HTTP 请求被发起服务取消时 取消 关闭的连接不会传播到云运行容器内正在服务的请求 示例代码 package main import log net http os time func main port os Ge
  • bash:mkvirtualenv:找不到命令

    按照以下说明进行操作后道格 海尔曼的virtualenvwrapper post https doughellmann com posts virtualenvwrapper 我仍然无法启动测试环境 mpenning tsunami mkv
  • COM 互操作传递错误的指针,只有一个字节的数据

    我在使用 COM 将指针传递给本机代码时遇到问题 我想在托管 C 代码中构建一个字节数组 并将该数组传递给本机 C 代码 我正在处理托管代码方面 我的同事负责本机方面 请注意 我在托管方面更强大 并且我几乎一直在使用所写的 COM 对象 C
  • 如果已选择,则单击时取消选择 GridView.Item

    我知道这看起来很简单 我也是这么想的 但实际上并非如此 我有一个 GridView SelectionMode Single 我想通过单击来简单地取消选择选定的项目 问题是 当您选择已选择的项目时 SelectionChanged 不会触发
  • 分钟变化时不调用 TIME_TICK

    我面临的问题是 当时间更改时 TIME TICK 仅在应用程序运行时调用 但我希望即使应用程序正在运行或不使用广播接收器也能调用它 主要活动 public class MainActivity extends Activity Overri
  • 如何在一个命令中执行多个 lein 任务?

    我是莱宁根的新手 当我尝试执行以下操作时 lein clean jar I got Wrong number of arguments to clean task Expected 如何在一个命令中执行多个任务 是的 可以执行多个莱宁根通过
  • Delphi Xe2 VCL 样式和网页浏览器

    Win7 x64 Delphi Xe2 更新2 Prompt 新项目编译为x32 在项目选项中应用视觉 vcl 样式 默认选择一种 在表单上的button1和WebBrowser1 在按钮中我们编写WebBrowser1 Navigate
  • 点击事件在 Chrome 中不起作用,但当我们从控制台手动执行它时,事件会触发

    从几个小时开始 我就试图找到一个棘手的客户问题的根本原因 感谢帮助 客户端 Chrome 浏览器中没有任何点击事件被触发 但是当我们从控制台调用 JavaScript 方法时 它就会触发 在附图中 您可以看到我如何触发该事件 尝试删除 da
  • 具有多个变量的 Sass @each

    我刚刚开始使用 Sass 和 Compass 我很喜欢它 我想做的就是利用 each简化重复性任务的功能 然而 我只看到过这样的例子 each插入一个变量 并且我希望能够使用多个变量 标准方式 从Sass 参考 http sass lang
  • jQuery 全局事件和性能?

    我正在寻找一种使用 jQuery 显示状态指示器的方法 我在 jQuery Cookbook 中找到了一个解决方案 它显示了这个解决方案 function document ready function ajaxStatus ajaxSta