我发现像.click和.change这样的事件,如果它们导致一些花费大量时间(例如一两秒钟)的处理实际上会延迟屏幕更新,所以用户看不到例如单选按钮选择移动直到一段时间后。就用户体验而言,这当然是一个很大的禁忌。按钮应立即更改,并且光标指示是否正在等待。
示例:http://jsfiddle.net/needlethread/uFjZf/1/
$('[name="myradio"]').change(function() {
delay(); // one second of code execution
$("#aaa").html("myradio changed"); // happens same time as radio moves
});
确保按钮在用户点击后立即发生变化的最佳方法是什么?我试过.click事件,同样的事情。
答案 0 :(得分:0)
如果你使用Ajax连接服务器,那就没问题,因为这是异步的。
否则,如果你只是做了很多客户端的事情,你可以使用一个技巧:
$('[name="myradio"]').change(function() {
$("#aaa").html("myradio changed"); // happens same time as radio moves
setTimeout(delay, 0);
});
这样做(setTimeout为0毫秒)有效地将调用移动到执行堆栈的末尾,因此在调用之前所有内容都会被执行。