Javascript阻止或减慢浏览器速度。如何防止警报或加速脚本

Javascript阻止或减慢浏览器速度。如何防止警报或加速脚本,javascript,datatable,Javascript,Datatable,我有一个datatable,其中有很多行需要在excel中导出。 在我的示例中,我只使用了500行,但在实际环境中,我使用了>2000行 更新:添加blockui以提醒用户: 现在,当使用excel中的按钮导出行时,会有一个脚本读取每一行以处理数据,并将其设置为与excel格式、对齐方式、单元格高度、换行符等兼容 下面是编辑行的代码: //need to change double quotes to single data = data.replac

我有一个datatable,其中有很多行需要在excel中导出。 在我的示例中,我只使用了500行,但在实际环境中,我使用了>2000行

更新:添加blockui以提醒用户:

现在,当使用excel中的按钮导出行时,会有一个脚本读取每一行以处理数据,并将其设置为与excel格式、对齐方式、单元格高度、换行符等兼容

下面是编辑行的代码:

           //need to change double quotes to single
           data = data.replace( /"/g, "'" );

           // replace &
           data = data.replace( /&/g, "&" );

           // replace p with br
           data = data.replace(/<p[^>]*>/g, '').replace(/<\/p>/g, '<br>');

           // replace div with br
           data = data.replace(/<div[^>]*>/g, '').replace(/<\/div>/g, '<br>');

           data = remove_tags(data);



           //split at each new line
           splitData = data.split('<br>');

           //remove empty string
           splitData = splitData.filter(function(v){return v!==''});

           data = '';
           for (i=0; i < splitData.length; i++) {
                    //add escaped double quotes around each line
                    data += '\"' + splitData[i] + '\"';
                    //if its not the last line add CHAR(10)
                    if (i + 1 < splitData.length) {
                        data += ', CHAR(10), ';
                    }
           }

           //Add concat function
           data = 'CONCATENATE(' + data + ')';
           return data;
此代码会减慢脚本的速度,并在浏览器上显示阻止或等待的警报。。。。 它不是很优雅,所以,有没有办法防止此警报或加速我的代码

在我的示例中,操作不是必需的,因为我设置了虚拟数据,但在实际环境中我需要它。

因此,建议如下:

为什么不做服务器端呢

在客户端处理大量数据是一个错误的选择。您始终依赖于客户端系统的资源容量。Javascript as不是计算密集型操作或数据处理的好选择

解决方案

通过API将页面大小和页码发送到服务器。查询表并在服务器端创建excel/csv。返回生成的文件作为UI的响应,以便将其下载到客户端系统上


我希望这能有所帮助:

嗨,我不想重新发明轮子。Datatables已经提供了一种在excel中导出的方法,因此我想使用它。如果您的数据库允许您轻松地进行同样的导出,请务必: