我一直在使用phantomjs和wkhtmltopdf来生成大型7000行自制主题表格的PDF报告。尝试这样做时都会耗尽内存。两者都使用近1GB的内存来尝试生成表格的PDF。所以我一直试图找出原因。我想首先尝试取消链接tablesorter并在我打印PDF报告时清除它的缓存,因为它不需要任何用户交互(不需要排序或过滤)。但每次我使用破坏,它都会破坏桌子的外观和感觉。我想保留外观和感觉,但只保留像小部件和缓存这样的破坏性的tableorter,这样它就不会消耗太多的内存。有没有办法清除tablesorter但保留我的桌子的外观和感觉?
更新: Thanx回复Mottie!
我实际上尝试过这个并进行了调试,发现这就是在使用bootstrap主题启用tablesorter时DOM的样子:
<table data-bind="if: details" id="ColorTable-sticky" class="tablesorter tablesorter-bootstrap table table-bordered hasFilters containsStickyHeaders tablesorter-sticky-hidden" style="position: fixed; margin: 0px; top: 40px; visibility: hidden; z-index: 2; height: 0px; width: 1190px; padding: 0px; border: 0px; left: 36px;">
但是一旦我摧毁(假),我就明白了:
<table data-bind="if: details" id="ColorTable-sticky" class="tablesorter">
我原本以为“tablesorter-bootstrap”类会保留在类中,但看起来所有类都被删除了,除了“tablesorter”类。
如何让它保留tablesorter-bootstrap类?
答案 0 :(得分:0)
destroy method确实有参数:
// Remove tablesorter and all classes but the "tablesorter" class on the table
// callback is a function
$("table").trigger("destroy", [false, callback]);
如果您将false
作为第一个参数传递,则所有内容仍然会被销毁,但是&#34; tablesorter&#34;类,包括主题名称(例如&#34; tablesorter-blue&#34;)将被保留。
也会删除排序箭头。
更新:哦,我想&#34; tablesorter-bootstrap&#34; class被删除,因为它是&#34; uitheme&#34;小部件。我会调查一下。同时,使用destroy回调函数来恢复类名:
$("table").trigger("destroy", [false, function(table){
$(table).addClass('tablesorter-bootstrap');
}]);
更新2:好的,没有按预期工作,你需要重新申请&#34; uitheme&#34; widget,但是由于destroy方法删除了API,我将更新存储库中的destroy方法并使其在下一个udpate中工作。