Ok, I'm sure everybody who works with javascript has seen this
or similar messages depending on their agent:
A script on this page is causing mozilla to run slowly.
If it continues to run, your computer may become unresponsive.
Do you want to abort the script?
[ OK ] [Cancel]
besides the very confusing OK/Cancel buttons in FireFox, is there a
way to tell a javascript to give control back to the agent interface
for a few moments?
I am trying to list "all" the characters in tables (from #x0000-#xffff)
yeah, that's 65K characters...
the function is defined in the <head> section and goes:
<script type="text/javascript">
function createlist()
{
var hex="0123456789 abcdef";
hex=hex.split(" ");
var fourth, third, second, first, spezial;
var oBody=document. getElementsByTa gName("body").i tem(0);
var oTable, oTHead, oTBody, oTFoot, oCaption;
var oRow, oCell, oHell, oDiv;
for (first=0;first< =15;first++)
{
for (second=0;secon d<=15;second++ )
{
oTable = document.create Element("table" );
oTHead = document.create Element("thead" );
oTBody = document.create Element("tbody" );
oTFoot = document.create Element("tfoot" );
oCaption = document.create Element("captio n");
oTable.appendCh ild(oCaption);
oTable.appendCh ild(oTHead);
oTable.appendCh ild(oTBody);
oTable.appendCh ild(oTFoot);
oTable.border=1 ;
oRow=document.c reateElement("t r");
oTHead.appendCh ild(oRow);
oCell = document.create Element("th");
oCell.appendChi ld(document.cre ateTextNode("He x"));
oRow.appendChil d(oCell);
oBody.appendChi ld(oTable);
for (oHell=0;oHell< 16;oHell++){
oCell = document.create Element("th");
oCell.appendChi ld(document.cre ateTextNode(hex[oHell]));
oRow.appendChil d(oCell);
}
oTBody = document.create Element("tbody" );
oTable.appendCh ild(oTBody);
for (third=0;third< =15;third++)
{
oRow=document.c reateElement("t r");
oTBody.appendCh ild(oRow);
oCell=document. createElement(" td");
oCell.appendChi ld(document.cre ateTextNode("&# x"+hex[first]+hex[second]+"n"+hex[third]+";"));
oRow.appendChil d(oCell);
for (fourth=0;fourt h<=15;fourth++ )
{
oCell=document. createElement(" td");
oCell.innerHTML ="&#x"+hex[first]+hex[second]+hex[fourth]+hex[third]+";";
oRow.appendChil d(oCell);
}
}
}
}
}
</script>
and then in the body I call
<script type="text/javascript">
createlist();
</script>
plain and simple, well, except for the load it creates iterating through 16^4
characters creating 16^2 tables and 16^4+16^2 cells and 16^3+16^2 rows
(rough calculations off the top of my head ;-)
Is there a way to diffuse the load and still getting all the tables created?
or similar messages depending on their agent:
A script on this page is causing mozilla to run slowly.
If it continues to run, your computer may become unresponsive.
Do you want to abort the script?
[ OK ] [Cancel]
besides the very confusing OK/Cancel buttons in FireFox, is there a
way to tell a javascript to give control back to the agent interface
for a few moments?
I am trying to list "all" the characters in tables (from #x0000-#xffff)
yeah, that's 65K characters...
the function is defined in the <head> section and goes:
<script type="text/javascript">
function createlist()
{
var hex="0123456789 abcdef";
hex=hex.split(" ");
var fourth, third, second, first, spezial;
var oBody=document. getElementsByTa gName("body").i tem(0);
var oTable, oTHead, oTBody, oTFoot, oCaption;
var oRow, oCell, oHell, oDiv;
for (first=0;first< =15;first++)
{
for (second=0;secon d<=15;second++ )
{
oTable = document.create Element("table" );
oTHead = document.create Element("thead" );
oTBody = document.create Element("tbody" );
oTFoot = document.create Element("tfoot" );
oCaption = document.create Element("captio n");
oTable.appendCh ild(oCaption);
oTable.appendCh ild(oTHead);
oTable.appendCh ild(oTBody);
oTable.appendCh ild(oTFoot);
oTable.border=1 ;
oRow=document.c reateElement("t r");
oTHead.appendCh ild(oRow);
oCell = document.create Element("th");
oCell.appendChi ld(document.cre ateTextNode("He x"));
oRow.appendChil d(oCell);
oBody.appendChi ld(oTable);
for (oHell=0;oHell< 16;oHell++){
oCell = document.create Element("th");
oCell.appendChi ld(document.cre ateTextNode(hex[oHell]));
oRow.appendChil d(oCell);
}
oTBody = document.create Element("tbody" );
oTable.appendCh ild(oTBody);
for (third=0;third< =15;third++)
{
oRow=document.c reateElement("t r");
oTBody.appendCh ild(oRow);
oCell=document. createElement(" td");
oCell.appendChi ld(document.cre ateTextNode("&# x"+hex[first]+hex[second]+"n"+hex[third]+";"));
oRow.appendChil d(oCell);
for (fourth=0;fourt h<=15;fourth++ )
{
oCell=document. createElement(" td");
oCell.innerHTML ="&#x"+hex[first]+hex[second]+hex[fourth]+hex[third]+";";
oRow.appendChil d(oCell);
}
}
}
}
}
</script>
and then in the body I call
<script type="text/javascript">
createlist();
</script>
plain and simple, well, except for the load it creates iterating through 16^4
characters creating 16^2 tables and 16^4+16^2 cells and 16^3+16^2 rows
(rough calculations off the top of my head ;-)
Is there a way to diffuse the load and still getting all the tables created?
Comment