Я использую Datatables для отображения 4 отдельных и динамических таблиц на 4 вкладках с использованием jquery. Все работает, но проблема заключается в том, что при нажатии каждой соответствующей вкладки datatables одновременно выполняет 4 вызова ajax (просматривается через firebug), что вызывает задержку для выбранной вкладки/таблицы.jquery UI tabs и Datatables, делающие несколько вызовов ajax
Я не уверен, были или почему он стреляет по каждой из вкладок - любая помощь apperciated
HTML для первых двух вкладок таблицы:
<div id="tabs">
<ul>
<li><a href="#tabs-1">Instructions</a></li>
<li><a href="#tabs-2">Supervisors</a></li>
<li><a href="#tabs-3">Credit</a></li>
<li><a href="#tabs-4">Historical</a></li>
<li><a href="#tabs-5">Agency</a></li>
<li><a href="#">Place Holder</a></li>
</ul>
<div id="tabs-2">
<asp:Table ID="displayTable1" class="display displayTable" runat="server">
<asp:TableHeaderRow runat="server" ForeColor="Black" BackColor="Gray" TableSection="TableHeader">
<asp:TableHeaderCell>SuperVisorStatus</asp:TableHeaderCell>
<asp:TableHeaderCell>CreditUpdates</asp:TableHeaderCell>
<asp:TableHeaderCell>SupervisorStatusDate</asp:TableHeaderCell>
<asp:TableHeaderCell>CreditUpdatesDate</asp:TableHeaderCell>
<asp:TableHeaderCell>Selltokey</asp:TableHeaderCell>
<asp:TableHeaderCell>customer</asp:TableHeaderCell>
</asp:Table>
</div>
<div id="tabs-3">
<asp:Table ID="displayTable2" class="display displayTable" runat="server">
<asp:TableHeaderRow runat="server" ForeColor="Black" BackColor="Gray" TableSection="TableHeader">
<asp:TableHeaderCell>SuperVisorStatus</asp:TableHeaderCell>
<asp:TableHeaderCell>CreditUpdates</asp:TableHeaderCell>
<asp:TableHeaderCell>SupervisorStatusDate</asp:TableHeaderCell>
<asp:TableHeaderCell>CreditUpdatesDate</asp:TableHeaderCell>
<asp:TableHeaderCell>Selltokey</asp:TableHeaderCell>
<asp:TableHeaderCell>customer</asp:TableHeaderCell>
</asp:Table>
</div>
А вот мой JQuery:
<script type="text/javascript">
$(function() {
$("#tabs").tabs({
beforeLoad: function(event, ui) {
ui.jqXHR.error(function() {
$("#loading").hide();
ui.panel.html(
"<b>Whoops! We've experienced some sort of error!</b><br> <br>Please contact <a href="[email protected]">me!</a>" +
" with specific details"
);
});
},
"activate": function(event, ui) {
if ($("#tabs").tabs('option', 'active') === 1) {
jaxUrl = "tableAjax.aspx?type=supervisor&json=yes";
} else if ($("#tabs").tabs('option', 'active') === 2) {
jaxUrl = "tableAjax.aspx?type=credit&json=yes";
} else if ($("#tabs").tabs('option', 'active') === 3) {
jaxUrl = "tableAjax.aspx?type=historical&json=yes";
} else {
jaxUrl = "";
}
var table = $.fn.dataTable.fnTables(true);
$('table.display').dataTable({
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": jaxUrl,
"bJQueryUI": true,
"aLengthMenu": [[5, 10, 15, 25, 50, 100, 200], [5, 10, 15, 25, 50, 100, 200]],
"iDisplayLength": 25,
"bDestroy": true
});
}
});
});
</script>
Во-первых, извините за задержку ответа. Во-вторых, большое спасибо за ответ. Ваше решение работает, и теперь страница работает потрясающе. Я действительно ценю твою помощь. – user1628449