473,512 Members | 15,196 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

small script --> huge load --> error message

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="0123456789abcdef";
hex=hex.split("");
var fourth, third, second, first, spezial;
var oBody=document.getElementsByTagName("body").item(0 );
var oTable, oTHead, oTBody, oTFoot, oCaption;
var oRow, oCell, oHell, oDiv;

for (first=0;first<=15;first++)
{
for (second=0;second<=15;second++)
{
oTable = document.createElement("table");
oTHead = document.createElement("thead");
oTBody = document.createElement("tbody");
oTFoot = document.createElement("tfoot");
oCaption = document.createElement("caption");

oTable.appendChild(oCaption);
oTable.appendChild(oTHead);
oTable.appendChild(oTBody);
oTable.appendChild(oTFoot);
oTable.border=1;

oRow=document.createElement("tr");
oTHead.appendChild(oRow);
oCell = document.createElement("th");
oCell.appendChild(document.createTextNode("Hex"));
oRow.appendChild(oCell);
oBody.appendChild(oTable);
for (oHell=0;oHell<16;oHell++){
oCell = document.createElement("th");
oCell.appendChild(document.createTextNode(hex[oHell]));
oRow.appendChild(oCell);
}
oTBody = document.createElement("tbody");
oTable.appendChild(oTBody);

for (third=0;third<=15;third++)
{
oRow=document.createElement("tr");
oTBody.appendChild(oRow);
oCell=document.createElement("td");
oCell.appendChild(document.createTextNode("&#x"+he x[first]+hex[second]+"n"+hex[third]+";"));
oRow.appendChild(oCell);
for (fourth=0;fourth<=15;fourth++)
{
oCell=document.createElement("td");
oCell.innerHTML="&#x"+hex[first]+hex[second]+hex[fourth]+hex[third]+";";
oRow.appendChild(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?
Aug 30 '05 #1
3 1551
Robi wrote:
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?
You may find this enlightening (and sympathetic too):

<URL:http://www.fourmilab.ch/fourmilog/archives/2005-08/000568.html>

The short answer is:

1. Type "about:config" in the address bar

2. Scroll down to "dom.max_script_run_time"

3. Double-click it and set it to however many seconds you'd like Firefox
to wait before presenting the confirm dialog.

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">


Using DOM is commendable, but for this task I think you will find that
good 'ol non-standard 'DOM 0' document.write is hugely faster.

Excuse me for not testing it! I'll have a go and post back later...

[...]

--
Rob
Aug 30 '05 #2
RobG wrote:
Robi wrote:
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?

You may find this enlightening (and sympathetic too):

<URL:http://www.fourmilab.ch/fourmilog/archives/2005-08/000568.html>

The short answer is:

1. Type "about:config" in the address bar

2. Scroll down to "dom.max_script_run_time"

3. Double-click it and set it to however many seconds you'd like Firefox
to wait before presenting the confirm dialog.

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">

Using DOM is commendable, but for this task I think you will find that
good 'ol non-standard 'DOM 0' document.write is hugely faster.

Excuse me for not testing it! I'll have a go and post back later...


Try this one:
- closing tags for tr & td omitted
- unused head, foot and caption elements omitted
- unneccessary (in this case) tbody omitted
function createlist() {
var hex="0123456789abcdef";
hex=hex.split("");
var n = hex.length;
var fourth, third, second, first, spezial;
var oBody = document.body;
var txt=[];

for ( first=0; first<n; first++ ) {
for (second=0;second<n;second++) {
txt.push('<table border="1"><tr><th>Hex<');

for ( oHell=0; oHell<n; oHell++){
txt.push('<th>' + hex[oHell]);
}

for ( third=0; third<n; third++) {
txt.push('<tr><td>' + '&#x' + hex[first]
+ hex[second] + 'n' + hex[third] + ';');

for ( fourth=0; fourth<n; fourth++) {
txt.push('<td>' + '&#x' + hex[first]
+ hex[second] + hex[fourth] + hex[third] + ';');
}
}
txt.push('</table>');
}
}
document.write(txt.join(''));
}
--
Rob
Aug 30 '05 #3
RobG wrote:
RobG wrote:
Robi wrote:
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?
You may find this enlightening (and sympathetic too):

<URL:http://www.fourmilab.ch/fourmilog/archives/2005-08/000568.html>

I did run across this page while trying to figure out what I could do,
but decided it to be a "hack" approach and try a different way because
if someone else wants to use the script (as perversely as it sounds)
that or those someones would need to adjust their agents and that wouldn't
necessarily have to be FF alone, and since I didn't find any "other"
obvious possibility I decided to post my question here.

[...] Using DOM is commendable, but for this task I think you will find that
good 'ol non-standard 'DOM 0' document.write is hugely faster.

Excuse me for not testing it! I'll have a go and post back later...


Try this one:
- closing tags for tr & td omitted
- unused head, foot and caption elements omitted
- unneccessary (in this case) tbody omitted


I understand the last two :-) but I didn't know tr/th/td end tags were optional until now
(probably until I or someone else change the document to xhtml...)

cool, thanks, now that's slim jim ;-)
function createlist() {
var hex="0123456789abcdef";
hex=hex.split("");
var n = hex.length;
var fourth, third, second, first, spezial;
var oBody = document.body;
var txt=[];

for ( first=0; first<n; first++ ) {
for (second=0;second<n;second++) {
txt.push('<table border="1"><tr><th>Hex<');

for ( oHell=0; oHell<n; oHell++){
txt.push('<th>' + hex[oHell]);
}

for ( third=0; third<n; third++) {
txt.push('<tr><td>' + '&#x' + hex[first]
+ hex[second] + 'n' + hex[third] + ';');

for ( fourth=0; fourth<n; fourth++) {
txt.push('<td>' + '&#x' + hex[first]
+ hex[second] + hex[fourth] + hex[third] + ';');
}
}
txt.push('</table>');
}
}
document.write(txt.join(''));
}


and the message didn't appear! :-D
oh, I tried to make "smaller" write() "blocks", moving the document.write()
into the "for(first" block, in the hope I would see the page grow, but all
I got was the message again, so I scraped that.
Thinking about it now, and after having read the fourmilab.ch article, it's
clearer to me, because wanting to run the script /and/ wanting to display
the data as it grows, uses all of FFs graphical/script resources.

Rob, thanks alot for the tip with the write('html')
instead of DOM createElement. Works great!

--
Robi
Aug 30 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1279
by: trdonavan | last post by:
Several things may have happened since I last successfully debugged this project. Something has caused it to fail to debug giving the message: Parser Error Message: Could not load type...
11
3098
by: Wolfgang Kaml | last post by:
I am not sure if this is more of an expert question, but I am sure that they are out there. I'd like to setup a general application or bin directory on my Win2003.Net Server that will hold some...
0
994
by: Michael Brame | last post by:
Hello, I am getting the "Provider Load Failure" error message when attempting to install FMStocks 7. I have seen other people post with this error but have not seen a solution for it yet. I...
1
1198
by: sling blade | last post by:
Hi, For some reason asp.net will not let me publish a new Webpage. I am able to create a new page however when I set it as the start page and hit run, I recieve "Could not load type" error...
0
1008
by: Curtiss | last post by:
I receive "could not load type" error message when trying to load aspx page. The DLL is built and is located in the correct bin directory. The type name in the "inherits" attribute matches the...
1
1476
by: Rob R. Ainscough | last post by:
Can someone tell me how to debug a Windows Install problem? I've created the installer project from home PC, transfered the installer project to my work PC, build the project on my work PC, but...
8
2835
by: Taras_96 | last post by:
Hi everyone, We' ve come to the conclusion that we wish the user to be directed to an error page if javascript is disabled <enter comment about how a webpage shouldn't rely on javascript here :)...
4
3017
by: rukkie | last post by:
Hi, I have some problems with a PHP reference in a <SCRIPTtag, but only with the Internet Explorer, which gives a "Error on page" message in the Status Bar. The code is as follows : <script>...
2
3485
by: Jonathan Crawford | last post by:
Hi I made a small change to a .Net 2 framework website and uploaded it today and went to the site and got Parser Error Message: Could not load type 'Tgsi.CortijoRomero.Website.Global'....
0
7371
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7432
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7093
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5676
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4743
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3230
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
1583
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
791
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
452
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.