多个Javascript并行运行

多个Javascript并行运行,javascript,jquery,asp.net,parallel-processing,devexpress,Javascript,Jquery,Asp.net,Parallel Processing,Devexpress,我有一个非常复杂的.Net页面,大量使用第三方库(DevExpress)。 我的页面由几个部分组成: “结果浏览器”允许用户选择两个小部件的内容: 表格小部件 图形小部件 用于刷新“结果浏览器”内容的计时器(AspxTimer) 时间小部件,每秒提供时间 我大量使用回调(AspxCallBack),以最大限度地减少从/到服务器传输的数据量,从而刷新浏览器/表格和图形。 在测试期间,每个元素单独运行良好,但该表的一个功能是在用户单击特定按钮时重新计算该表的小计。在表构造过程中,我用适当的属

我有一个非常复杂的.Net页面,大量使用第三方库(DevExpress)。 我的页面由几个部分组成:

  • “结果浏览器”允许用户选择两个小部件的内容:
    • 表格小部件
    • 图形小部件
  • 用于刷新“结果浏览器”内容的计时器(AspxTimer)
  • 时间小部件,每秒提供时间
我大量使用回调(AspxCallBack),以最大限度地减少从/到服务器传输的数据量,从而刷新浏览器/表格和图形。 在测试期间,每个元素单独运行良好,但该表的一个功能是在用户单击特定按钮时重新计算该表的小计。在表构造过程中,我用适当的属性标记了正确的小计单元格(包含跨度),这样我就可以在客户端用javascript(
0.0
)找到它们,并有一个类(code,number)向量来存储实际的数字,并从中重新计算小计

。这是我的密码:

 function recalcSubTotal() {
    $('span[SubTotal="true"]').each(function() {
        var subSpan = $(this);
        var sTrends = subSpan.attr('trendsTotal');
        var Trends = sTrends.split('|');
        var subTotal = 0.0;
        for (var i = 0; i < Trends.length - 1; i++) {
            subTotal += Decision[Trends[i]];
        }
        subSpan.html(subTotal.toFixed(1));
    });
}
函数重算小计(){
$('span[SubTotal=“true”]”)。每个(函数(){
var subSpan=$(本);
var Strengds=次档距属性('trendsTotal');
var趋势=强度分割(“|”);
var小计=0.0;
对于(变量i=0;i
这在一个单独的页面中效果很好,但是当在一个页面中混合所有这些内容时,我随机地得到了这个函数返回的NaN(不是数字)代码或错误的总数,再次单击操作按钮,它可以正常工作。除了javascript+回调的相对复杂性和并行使用之外,没有什么能真正解释这种行为。我设法避免了任何并行回调(链接它们),但无法使用客户端事件或日期/时间计时器。我想知道是否有一种处理客户端并行运行(计时器+回调+用户操作)的通用干净方法。
感谢您提供有关此主题的任何线索。

尝试使用方法e
setTimeout()
调用函数
recalcSubTotal()
,如下所示:

setTimeout(function(){
    recalcSubTotal();
}, 0);

我最终发现,在某些情况下,这是由于我如何在向量“Decision”中获得实际值。我使用的是AspxClientGridView.GetRowValues,它实际上在服务器上调用了Devexpress回调函数。回调可以在需要值的主例程之后返回值。这一改变解决了我在这个页面上遇到的大多数问题,但我也在我的所有客户端操作上实现了setTimeout(x,0),以提高页面的总体稳定性,从那以后,得到了一个非常稳定的页面,没有任何奇怪的行为。谢谢你。