带回调的Javascript排序
我有几个链接用于对页面上的当前元素进行排序 职能:带回调的Javascript排序,javascript,callback,usability,Javascript,Callback,Usability,我有几个链接用于对页面上的当前元素进行排序 职能: 带有数组排序的单击处理程序 B-根据排序的数组显示元素 排序甚至需要2秒钟,所以我想向用户显示一些反馈 我想把链接文本改成“进行中…”之类的东西 有趣的是,A存储旧链接文本并将其更改为“进行中”,然后将另一个函数传递给B 我在显示元素之后调用它来显示链接的旧文本,但它就是不起作用 在调试器中,链接文本已更改,但我始终只能看到旧文本 如何为此创建有效的回调 我看到类似的排序网站,也没有任何反馈给用户 这可以用javascript实现吗?或者反
- 带有数组排序的单击处理程序
- B-根据排序的数组显示元素
这可以用javascript实现吗?或者反馈只能在ajax请求时显示?问题很可能是您正在运行完全同步的代码 在启动的任何函数完成之前,DOM都不会更新(即使在长时间运行的计算之前更新了DOM) 防止DOM立即更新的长时间运行的计算。(单击顶部的“渲染”按钮以正确查看示例。) 请注意,在示例中,
“开始…等待几秒钟。”
文本立即出现,并且不会被长时间运行的计算阻止。但是“更新的”
文本需要3秒钟才能显示
这是因为我首先将“start…”
添加到DOM中,然后将其余代码包装到setTimeout
中。这允许DOM立即更新“启动…”
,但setTimeout
中的其余代码是同步的,因此在该代码完成之前,DOM不会再次更新
因此,您的解决方案可以是使用
“进行中…”
更新文本,然后将其余代码包装在setTimeout()
中,以便允许DOM立即使用您的进度消息进行更新
element.innerHTML = "In progress...";
setTimeout( function() {
// invoke the sorting code
}, 0);
问题很可能是您正在运行完全同步的代码 在启动的任何函数完成之前,DOM都不会更新(即使在长时间运行的计算之前更新了DOM) 防止DOM立即更新的长时间运行的计算。(单击顶部的“渲染”按钮以正确查看示例。) 请注意,在示例中,
“开始…等待几秒钟。”
文本立即出现,并且不会被长时间运行的计算阻止。但是“更新的”
文本需要3秒钟才能显示
这是因为我首先将“start…”
添加到DOM中,然后将其余代码包装到setTimeout
中。这允许DOM立即更新“启动…”
,但setTimeout
中的其余代码是同步的,因此在该代码完成之前,DOM不会再次更新
因此,您的解决方案可以是使用
“进行中…”
更新文本,然后将其余代码包装在setTimeout()
中,以便允许DOM立即使用您的进度消息进行更新
element.innerHTML = "In progress...";
setTimeout( function() {
// invoke the sorting code
}, 0);
嗯。。。如果您在开始排序之前更改了链接文本,那么这应该是可行的。你能发布一些代码片段吗?嗯。。。如果您在开始排序之前更改了链接文本,那么这应该是可行的。你能发布一些代码片段吗?