在 javascript 排序调用之前强制更新 element.innerHTML

2024-03-30

这种情况的最佳实践是什么: 1)用户点击“对巨大的javascript数组进行排序” 2)浏览器通过element.innerHTML =“Sorting”显示“Sorting...” 3) 浏览器对巨大的 javascript 数组进行排序(100% CPU 持续几秒钟),同时显示“正在排序...”消息。 4) 浏览器显示结果。

伪代码:

...
<a href="#" onclick="sortHugeArray();return false">Sort huge array</a>
...
function sortHugeArray(){
  document.getElementById("progress").innerHTML="Sorting...";
  ...do huge sort ...
  ...render result...
  document.getElementById("progress").innerHTML=result;
}

当我这样做时,浏览器永远不会显示“排序...”,它会冻结浏览器几秒钟并显示结果,而不会注意到用户...

谢谢你的建议。


您必须将控制权返回给浏览器,以使其更新屏幕上的任何更改。使用超时来要求它将控制权返回给您。

function sortHugeArray(){
    document.getElementById("progress").innerHTML="Sorting...";
    setTimeout(function() {
        ...do huge sort ...
        ...render result...
        document.getElementById("progress").innerHTML=result;
    }, 0);
}

不过,执行脚本“几秒钟”有点问题。应该有一种方法可以加快速度,或者将过程分成几个部分,每隔一段时间就返回控制权,以保持页面的响应能力。

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

在 javascript 排序调用之前强制更新 element.innerHTML 的相关文章

随机推荐

  • 将 NSString 转换为以特定字符分隔的 NSDictionary

    我需要将这个 5 8 519223cef9cee4df999436c5e8f3e96a EVAL TIME 60 2013 03 21 字符串转换为字典 用 分隔 字典会是这样的 sometext1 5 sometext2 8 somete
  • Java中System.load()和System.loadLibrary的区别

    有什么区别System load http download oracle com javase 6 docs api java lang System html load 28java lang String 29 and System
  • 谷歌地图套件,像谷歌地图ios一样绘制步行折线

    I wants to draw polyline for walk like google map app in ios using google maps ios sdk For more clear understanding i am
  • CSS 对浮动对象设置 width:100% 停止

    尝试这个 div p LEFT p div div p RIGHT p div div p p div
  • Android中如何通过JNI调用C文件中的main函数?

    我正在开发一个应用程序 我必须使用Live555在 Android 4 4 2 上 Live555是一个 C 源代码Media Streaming 我必须这样称呼它JNI 我已经构建了 soLive555就像下面的图片 我想通过JNI调用C
  • 0x55a49d6cd0 (RippleDrawable) 上句柄为 0x55a46650d0 的 endAllStagingAnimators 的含义是什么

    在android中 当我运行我的应用程序时 我在logcat中得到了这个 我的应用程序是回合制游戏 例如井字游戏 每次点击更新网格板时都会有 2 个动画 1 个 YTransition 和其他旋转 没有问题 但是当我第一次运行应用程序时 会
  • Git Diff 与 Beyond Compare

    我已经成功地让 git 启动 Beyond Compare 3 作为 diff 工具 但是 当我进行 diff 时 我正在比较的文件没有被加载 仅加载该文件的最新版本 没有加载其他任何内容 因此 Beyond Compare 的右侧窗格中没
  • 元素类型无效:需要字符串(对于内置组件)或类/函数

    import React from react import ReactDOM from react dom import Map from components map container map import App from App
  • Bitmap处理时如何避免“内存不足异常”?

    In onPictureTaken 我想做以下事情 Bitmap decodedPicture BitmapFactory decodeByteArray data 0 data length Matrix matrix new Matri
  • .Net核心和插件

    本次讲座结束后 https learn microsoft com en us dotnet core tutorials creating app with plugin support https learn microsoft com
  • Spring Boot中无法拦截和操作HttpServletResponse

    我有一个要求Base64解码我的 Spring Boot 服务收到的每个 JSON 请求负载 JSON 有效负载将是Base64在使用 HTTP 发布之前在客户端进行编码POST方法 此外 我还需要Base64在呈现给调用客户端应用程序之前
  • 结构体接口

    当你定义一个新的struct最好也定义该类型的接口 即 setter 和 getter 函数 或直接通过 and gt 运营商 EDIT纯 C 编程 这取决于您的结构是否是抽象数据类型 如果您在标头中公开结构定义 则定义访问器没有任何意义
  • 如何使用简单注入器将依赖项注入到 WCF 属性中

    我有一堆与 REST 和 SOAP 配合使用的 WCF 服务 我创建了一个 WCF 属性 用于检查当前 httpcontext 是否存在 如果存在 则使用 cookie 身份验证 否则使用自定义 WCF 身份验证 我的属性如下所示 Publ
  • Android 颜色通知图标

    我正在开发一个为用户创建通知的应用程序 我希望图标在状态栏中显示为白色 但在下拉通知菜单中显示时显示为蓝色 以下是 Google Store 应用执行相同操作的示例 状态栏中的白色通知 下拉菜单中的彩色通知 我怎样才能复制这个 我必须设置哪
  • pjax :HTML 链接,其工作方式类似于浏览器后退按钮

    我使用 pjax 进行网站导航 我需要创建一个 HTML 后退按钮 其工作方式与浏览器后退按钮完全相同 但这应该是一个简单的 HTML 链接 如何创建导航到上一页的 pjax 链接 我搜索过 所有主题似乎都与浏览器后退按钮有关 这不是我想要
  • Apache Web 服务器在 60 秒后超时

    我在 IBM Softlayer 中运行的 apache Web 服务器 php 在 60 秒后遇到超时 这些是我的设置 这些设置后httpd服务器重新启动 httpd conf TimeOut 300 Timeout 300 同时尝试两者
  • 颤振行和列

    我是一个颤振初学者 如何创建无边框的 4 2 表格列之类的元素 我尝试过 但没有得到我想要的对齐方式 像这样 https i stack imgur com i1a3f jpg 有人可以指导我如何解决这个问题吗 这是我的有状态小部件的构建方
  • 如何改进 clisp 错误消息?

    我已经接触过一些clisp 有点令人困惑的是它没有打印出错误所在的行号 或者 至少给出错误所在的一般提示 在某些情况下这一定是可能的 对吧 有什么方法可以获得更好的错误消息吗 正如我看到的大多数涉及 clisp 的问题一样 答案可能是 不要
  • 请对我的示例 Python 程序进行代码审查 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我仍在学习
  • 在 javascript 排序调用之前强制更新 element.innerHTML

    这种情况的最佳实践是什么 1 用户点击 对巨大的javascript数组进行排序 2 浏览器通过element innerHTML Sorting 显示 Sorting 3 浏览器对巨大的 javascript 数组进行排序 100 CPU