私はasp:Repeaterサーバーサイドコントロールを使用しています。テーブルのtdタグの1つにチェックボックスがあります。リピータのヘッダには、id = "selectAllCheck"のチェックボックスがあります。javascriptを使用して多くのチェックボックスをチェックするとChromeがハングアップしますが、Firefoxは即座に応答します
私は、次のJavaScriptコード
var checkBox = document.getElementById('selectAllCheck');
function changeAll() {
if (checkBox.checked == 1) {
$('input:checkbox').attr('checked', "checked");
}
else {
$('input:checkbox').attr('checked', "");
}
}
checkBox.onchange = changeAll;
これはFirefoxでうまく動作しますが持っている必要が、瞬時にすべてのチェックボックスがオンまたはオフのいずれかされています。しかし、クロムでは約10秒かかります。ところで、ページには約250個のチェックボックスがありますが、その数字を15にするだけでも、それはまだクロムで瞬時ではなく、はるかに速いことがわかります。
誰かがこの問題に遭遇した場合、この問題に関連する記事を見た場合、またはこの問題を解決する方法を知っている場合は非常に感謝します。
EDIT:投稿ページ
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentMain" Runat="Server">
<form id="webForm" runat="server">
<asp:Label ID="sourceLabel" runat="server" AssociatedControlID="sourceList" Text="Source"></asp:Label>
<asp:DropDownList ID="sourceList" runat="server" />
<asp:Button ID="showButton" runat="server" Text="View" />
<asp:Repeater ID="Repeater_DIBS" runat="server">
<HeaderTemplate>
<table>
<tr><th><input type="checkbox" id="selectAllCheck" /> (un)check All</th> <th>SourceID</th><th>FieldID</th><th>Source Indicator</th><th>Date Data Updated</th> <th>Message</th></tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style='width:1%;white-space:nowrap;'><input type='checkbox' class='checkBoxes' /></td>
<td style='width:1%;white-space:nowrap;'><%# Eval("SourceID") %></td>
<td style='width:1%;white-space:nowrap;'><%# Eval("FieldID") %></td>
<td class='indicator' style='width:1%;white-space:nowrap;'><%# Eval("SourceIndicator") %></td>
<td style='width:1%;white-space:nowrap;'><%# Eval("DateDataUpdated") %></td>
<td style='width:1%;white-space:nowrap;' class='status'></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="ContentJS" Runat="Server">
<script type="text/javascript">
$("#selectAllCheck").change(function() {
if (this.checked) {
$("input:checkbox.checkBoxes").attr("checked", "checked");
}
else {
$("input:checkbox.checkBoxes").removeAttr("checked");
}
});
</script>
</asp:Content>
2年後、これはまだそうであるように思われます.Firefoxの同様のページがかなり速く実行されている間に、500以上のチェックボックスを備えたページは非常に遅いです。 – Marcus