ho provato per curiosità col codice riportato sotto.
Ho 10.000 checkbox e una stringa di 108.893 bytes.
faccio lo split della stringa
per ogni elemento del vettore impongo lo check all'elemento
IE8 e Chrome hanno tempi simili (2-3 secondi, non certo minuti)
Firefox e Opera danno il risultato quasi istantaneamente
La domanda è: il codice di prova mio, è molto lontano dall'originale?
codice:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected k As Integer = 10000
Protected ReadOnly Property stringa As String
Get
Dim sb As New StringBuilder()
sb.Append(String.Format("prova_{0}", 1))
For i As Integer = 2 To k
sb.Append(String.Format("#prova_{0}", i.ToString))
Next
Return sb.ToString
End Get
End Property
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script language="javascript" type="text/javascript">
// <!CDATA[
window.onload = function()
{
var sAux = "<%=stringa %>";
var aAux = sAux.split('#');
for(var i = 0; i < aAux.length; i++)
{
var c = document.getElementById(aAux[i]);
if(c) c.checked = true;
}
};
// ]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<%For i = 1 To k%>
<input id="prova_<%=i %>" type="checkbox" />
<%next %>
</div>
</form>
</body>
</html>