Forum Moderators: open

Message Too Old, No Replies

IE hangs when I open the page from internet but works fine locally

Javascript web page works locally fine, but hangs if loaded on internet

         

chinni

6:11 pm on Sep 4, 2004 (gmt 0)

10+ Year Member



I am learning javascript and have created a simple webpage framework. Please have a look at www.chinniinc.com. All the links here shown are generated using javascript from data files. When I click on group1, I will be listing the links to pages in the group on the left side of the page, and opening the first page of the group in the right side. This works fine when I open locally. I uploaded the files and try to ran it from the website. It hangs when I click on group1 or any other link.
---
here is the source code of the functions i used.
----
// -----------------------------------------------------------------------------
// Page Object Functions
// -----------------------------------------------------------------------------
var numberOfMenuItems=2;
var numberOfNewsItems=2;
var numberOfBookMarkGroups=2;
var numberOfBookMarks=10;

function printPageGroups ()
{
var i=0,ctr=0;
ctr = PageGroupObjectArray.length;
for ( i=0 ; i < ctr ; i++)
{
document.write ( '&nbsp;<FONT size=1><a href="javascript:printGroupPage(\'' + PageGroupObjectArray[i].groupName + '\')">' + PageGroupObjectArray[i].groupName + '</A></FONT>&nbsp;¦');
}
}

function printGlobalMenu ()
{
var i=0,ctr=0;
ctr = GlobalMenuObjectArray.length;
for ( i=0 ; i < ctr ; i++)
{
document.write ( '&nbsp;<a href="javascript:LoadGlobalPage(\''+ GlobalMenuObjectArray[i].url + '\')">' + GlobalMenuObjectArray[i].title + ' </A>&nbsp;¦');
}
}

function createPage ( StartPageNumber,title )
{
newdocument= window.document
newdocument.write ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
newdocument.write('<html><head> <link href="style/style.css" rel="stylesheet" type="text/css"> ');
newdocument.write('<script src="js/schema.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/pageobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/newsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/blogsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/bookmarkobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/functions.js" language="javascript" type="text/javascript">');
newdocument.write ('</script><title>Untitled</title> </head> <body>');
newdocument.write ( '<script language="javascript"> createPageList(' + StartPageNumber + ',"' + title + '"); </script>');
newdocument.write ('</body> </html>');
newdocument.close();
}

function LoadBodyPage ( url )
{
top.body.location = url;
}

function LoadGlobalPage ( url )
{
top.body.location = url;
top.linksFrame.location = "blank.htm";
}

function LoadBodyPageFromList ( listName )
{
alert (document.form1.Select1.selectedIndex );
alert (document.form1.Select1.options[document.form1.Select1.selectedIndex].value);
top.body.location = document.form1.Select1.options[document.form1.Select1.selectedIndex].value;
}

function createPageList( StartPageNumber,title )
{
var ctr = 0;
var eol = false;
var eleCtr = 0;
var nextStartNumber = 0;
var i=0;
var nextNumber = 0;

ctr = PageObjectArray.length - StartPageNumber;

document.write ('<TABLE width=150 CELLSPACING=0 CELLPADDING=0 borderColor=#d9d9d9 borderColorDark=#d9d9d9 borderColorLight=#d9d9d9 border=1><TR><TD bgcolor=#e0e0e0>') ;
document.write ('<strong> <font color=black size=1>&nbsp;&nbsp;' + title + ' </font> </strong></TD></TR>');

eol = true;
for ( i=0 ; i < ctr ; i++)
{
if ( PageObjectArray[i+StartPageNumber].pageGroup == title )
{
eleCtr = eleCtr + 1;
if ( eleCtr <= numberOfMenuItems )
{
if ( eleCtr == 1)
{
top.body.location = PageObjectArray[StartPageNumber+i].url;
}
document.write ( '<TR><TD><strong><FONT size=1><A href="javascript:LoadBodyPage(\'' + PageObjectArray[i+StartPageNumber].url + '\');">&nbsp;&nbsp;' + PageObjectArray[i+StartPageNumber].title + '</A></FONT> </strong></TD></TR>');
eol = true;
}
else
{
eol = false;
nextStartNumber = StartPageNumber+i;
nextNumber = nextStartNumber;
break;
}
}
}

document.write ( '<TR><TD bgcolor=#e0e0e0><strong><FONT size=1>')
// Previous
if ( StartPageNumber!= 0 )
{
eleCtr = 0;
for ( i=StartPageNumber-1 ; i >= 0 ; i--)
{
if ( PageObjectArray[i].pageGroup == title)
{
eleCtr = eleCtr + 1;
if ( eleCtr == numberOfMenuItems )
{
nextStartNumber = i;
break;
}
}
}
document.write ('<A href="javascript:createPage(' + nextStartNumber + ',\'' + title + '\')" >&nbsp;&nbsp;<<<< &nbsp; </A>');
}

document.write ('<A href="javascript:createPage(0,'+'\'' + title + '\')" >&nbsp;&nbsp; Home&nbsp; </A>');

// Next
if ( eol == false)
{
document.write ( '<A href="javascript:createPage(' + (nextNumber) + ',\'' + title + '\')" >&nbsp;&nbsp; >>>> </A>');
}

document.write('</FONT></strong></TD></TR></TABLE>')
}

// -----------------------------------------------------------------------------
// Page Creating Functions
// -----------------------------------------------------------------------------

function printGroupPage ( groupName )
{
doc = top.linksFrame.window.document;
doc.write ( ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> ');
doc.write ( ' <link href="style/style.css" rel="stylesheet" type="text/css"> ');
doc.write ( ' <script src="js/schema.js" language="javascript" type="text/javascript"></script>' );
doc.write ( ' <script src="js/pageobjData.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <script src="js/newsobjData.js" language="javascript" type="text/javascript"></script> ');
doc.write('<script src="js/blogsobjData.js" language="javascript" type="text/javascript"></script>');
doc.write ( ' <script src="js/bookmarkobjData.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <script src="js/functions.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <title>' + groupName + '</title> </head> <body > <script language="javascript">');
doc.write ( ' createPageList(0, "' + groupName + '"); </script> </body> </html>');
doc.close();
}

// -----------------------------------------------------------------------------
// News Functions
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// News Links
// -----------------------------------------------------------------------------

function createNewsList( StartPageNumber ,title)
{
var ctr = 0;
var eol = false;
var eleCtr = 0;
var nextStartNumber = 0;
var i=0;
ctr = NewsObjectArray.length - StartPageNumber;
var prevNumber=0;
var nextNumber=0;

document.write ('<TABLE width=150 CELLSPACING=0 CELLPADDING=0 borderColor=#d9d9d9 borderColorDark=#d9d9d9 borderColorLight=#d9d9d9 border=1><TR><TD bgcolor=#e0e0e0>') ;
document.write ('<strong> <font color=black size=1>&nbsp;&nbsp;' + title + ' </font> </strong></TD></TR>');

eol = true;
for ( i=0 ; i < ctr ; i++)
{
eleCtr = eleCtr + 1;
if ( eleCtr <= numberOfNewsItems )
{
if ( eleCtr == 1)
{
top.body.location = NewsObjectArray[StartPageNumber+i].url;
}
document.write ( '<TR><TD><strong><FONT size=1>"' + NewsObjectArray[i+StartPageNumber].text + '"...<A href="javascript:LoadBodyPage(\'' + NewsObjectArray[i+StartPageNumber].url + '\');">&nbsp;&nbsp;' + NewsObjectArray[i+StartPageNumber].title + '</A></FONT> </strong></TD></TR>');
eol = true;
}
else
{
eol = false;
nextStartNumber = StartPageNumber+i;
nextNumber = nextStartNumber;
break;
}
}

document.write ( '<TR><TD bgcolor=#e0e0e0><strong><FONT size=1>' );
// Prev
if ( StartPageNumber!= 0 )
{
eleCtr = 0;
for ( i=StartPageNumber-1 ; i >= 0 ; i--)
{

eleCtr = eleCtr + 1;
if ( eleCtr == numberOfNewsItems )
{
nextStartNumber = i;
break;
}

}
document.write ( '<A href="javascript:printNewsLinksPage(' + nextStartNumber + ',\'' + title + '\')" >&nbsp;&nbsp;<<<< &nbsp; </A>');
}
// Home
document.write ( '<A href="javascript:printNewsLinksPage(0,'+'\'' + title + '\')" >&nbsp;&nbsp; Home&nbsp; </A>');

// Next
if ( eol == false)
{
document.write ( '<A href="javascript:printNewsLinksPage(' + (nextNumber) + ',\'' + title + '\')" >&nbsp;&nbsp; >>>> </A>');
}

document.write('</FONT></strong></TD></TR></TABLE>')
}

// -----------------------------------------------------------------------------
// News Links Page
// -----------------------------------------------------------------------------

/*
function printNewsLinksPage2 ()
{
var groupName="News@ChinniInc";
doc = top.linksFrame.window.document;
doc.write ( ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> ');
doc.write ( ' <link href="style/style.css" rel="stylesheet" type="text/css"> ');
doc.write ( ' <script src="js/schema.js" language="javascript" type="text/javascript"></script>' );
doc.write ( ' <script src="js/pageobjData.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <script src="js/bookmarkobjData.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <script src="js/newsobjData.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <script src="js/functions.js" language="javascript" type="text/javascript"></script> ');
doc.write ( ' <title>' + groupName + '</title> </head> <body > <script language="javascript">');
doc.write ( ' createNewsList(0, "' + groupName + '"); </script> </body> </html>');
doc.close();
}
*/

function printNewsLinksPage (StartPageNumber,title)
{
newdocument= top.linksFrame.window.document
newdocument.write ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
newdocument.write('<html><head> <link href="style/style.css" rel="stylesheet" type="text/css"> ');
newdocument.write('<script src="js/schema.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/pageobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/bookmarkobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/newsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/blogsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/functions.js" language="javascript" type="text/javascript">');
newdocument.write ('</script><title>Untitled</title> </head> <body>');
newdocument.write ( '<script language="javascript"> createNewsList(' + StartPageNumber + ',"' + title + '"); </script>');
newdocument.write ('</body> </html>');
newdocument.close();
}
////////////////////////////////////////////////////////////////////////////////////////////
// Bookmarks
////////////////////////////////////////////////////////////////////////////////////////////
function createBookMarksList( StartPageNumber,title)
{
var ctr = 0;
var eol = false;
var eleCtr = 0;
var nextStartNumber = 0;
var i=0;
ctr = BookMarkGroupObjectArray.length - StartPageNumber;
var prevNumber=0;
var nextNumber=0;

document.write ('<TABLE width=150 CELLSPACING=0 CELLPADDING=0 borderColor=#d9d9d9 borderColorDark=#d9d9d9 borderColorLight=#d9d9d9 border=1><TR><TD bgcolor=#e0e0e0>') ;
document.write ('<strong> <font color=black size=1>&nbsp;&nbsp;' + title + ' </font> </strong></TD></TR>');

eol = true;
for ( i=0 ; i < ctr ; i++)
{
eleCtr = eleCtr + 1;
if ( eleCtr <= numberOfBookMarkGroups )
{
if ( eleCtr == 1)
{
printBookMarks(0,BookMarkGroupObjectArray[i+StartPageNumber].groupName);
}
document.write ( '<TR><TD><strong><FONT size=1><A href="javascript:printBookMarks(0,\'' + BookMarkGroupObjectArray[i+StartPageNumber].groupName + '\');">&nbsp;&nbsp;' + BookMarkGroupObjectArray[i+StartPageNumber].groupName + '</A></FONT> </strong></TD></TR>');
eol = true;
}
else
{
eol = false;
nextStartNumber = StartPageNumber+i;
nextNumber = nextStartNumber;
break;
}
}

document.write ( '<TR><TD bgcolor=#e0e0e0><strong><FONT size=1>' );
// Prev
if ( StartPageNumber!= 0 )
{
eleCtr = 0;
for ( i=StartPageNumber-1 ; i >= 0 ; i--)
{

eleCtr = eleCtr + 1;
if ( eleCtr == numberOfBookMarkGroups )
{
nextStartNumber = i;
break;
}

}
document.write ( '<A href="javascript:printBookMarksPage(' + nextStartNumber + ',\'' + title + '\')" >&nbsp;&nbsp;<<<< &nbsp; </A>');
}
// Home
document.write ( '<A href="javascript:printBookMarksPage(0,'+'\'' + title + '\')" >&nbsp;&nbsp; Home&nbsp; </A>');

// Next
if ( eol == false)
{
document.write ( '<A href="javascript:printBookMarksPage(' + (nextNumber) + ',\'' + title + '\')" >&nbsp;&nbsp; >>>> </A>');
}

document.write('</FONT></strong></TD></TR></TABLE>')
}

function printBookMarksPage (StartPageNumber,title)
{
newdocument= top.linksFrame.window.document
newdocument.write ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
newdocument.write('<html><head> <link href="style/style.css" rel="stylesheet" type="text/css"> ');
newdocument.write('<script src="js/schema.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/pageobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/bookmarkobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/blogsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/newsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/functions.js" language="javascript" type="text/javascript">');
newdocument.write ('</script><title>Untitled</title> </head> <body>');
newdocument.write ( '<script language="javascript"> createBookMarksList(' + StartPageNumber + ',"' + title + '"); </script>');
newdocument.write ('</body> </html>');
newdocument.close();
}

function viewPage ( URL )
{
wind = window.open ("","NewWindow");
wind.location = "bodypage.htm";
}
function printBookMarks ( StartPageNumber, title )
{
var ctr = 0;
var eol = false;
var eleCtr = 0;
var nextStartNumber = 0;
var i=0;
var nextNumber = 0;

ctr = BookMarkObjectArray.length - StartPageNumber;

newdocument = top.body.window.document
newdocument.write ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
newdocument.write('<html><head> <link href="style/style.css" rel="stylesheet" type="text/css"> ');
newdocument.write('<script src="js/schema.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/pageobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/bookmarkobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/newsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/blogsobjData.js" language="javascript" type="text/javascript"></script>');
newdocument.write('<script src="js/functions.js" language="javascript" type="text/javascript">');
newdocument.write ('</script><title>Untitled</title> </head> <body>');

newdocument.write ('<TABLE width=100% CELLSPACING=0 CELLPADDING=0 borderColor=#d9d9d9 borderColorDark=#d9d9d9 borderColorLight=#d9d9d9 border=1><TR><TD bgcolor=#e0e0e0 align=center>') ;
newdocument.write ('<strong> <font color=black size=1>&nbsp;&nbsp;' + title + ' BookMarks</font> </strong></TD></TR>');

eol = true;
for ( i=0 ; i < ctr ; i++)
{
if ( BookMarkObjectArray[i+StartPageNumber].bookMarkGroup == title )
{
eleCtr = eleCtr + 1;
if ( eleCtr <= numberOfMenuItems )
{
newdocument.write ( '<TR><TD align=left> <FONT size=2pt>')
newdocument.write ( '&nbsp;<strong>Title:</strong>' + BookMarkObjectArray[i+StartPageNumber].title + '<br>');
newdocument.write ( '&nbsp;<strong>URL</strong><A href="javascript:viewPage(\'' + BookMarkObjectArray[i+StartPageNumber].url + '\');">&nbsp;&nbsp;' + BookMarkObjectArray[i+StartPageNumber].url + '</A><br>');
if ( BookMarkObjectArray[i+StartPageNumber].description!= "" )
{ newdocument.write ( '&nbsp;<strong>Description:</strong>' + BookMarkObjectArray[i+StartPageNumber].description + '<br>');}
if ( BookMarkObjectArray[i+StartPageNumber].category!= "" )
{newdocument.write ( '&nbsp;<strong>Categories:</strong>' + BookMarkObjectArray[i+StartPageNumber].category + '<br>');}
if ( BookMarkObjectArray[i+StartPageNumber].keywords!= "" )
{newdocument.write ( '&nbsp;<strong>Keywords:</strong>' + BookMarkObjectArray[i+StartPageNumber].keywords + '<br>');}
if ( BookMarkObjectArray[i+StartPageNumber].doa!= "" )
{newdocument.write ( '&nbsp;<strong>Added on:</strong>' + BookMarkObjectArray[i+StartPageNumber].doa + '<br>');}
newdocument.write ( '</FONT></TD></TR>')

eol = true;
}
else
{
eol = false;
nextStartNumber = StartPageNumber+i;
nextNumber = nextStartNumber;
break;
}
}
}

newdocument.write ( '<TR><TD bgcolor=#e0e0e0><strong><FONT size=1>')
// Previous
if ( StartPageNumber!= 0 )
{
eleCtr = 0;
for ( i=StartPageNumber-1 ; i >= 0 ; i--)
{
if ( BookMarkObjectArray[i].pageGroup == title)
{
eleCtr = eleCtr + 1;
if ( eleCtr == numberOfMenuItems )
{
nextStartNumber = i;
break;
}
}
}
newdocument.write ('<A href="javascript:printBookMarks(' + nextStartNumber + ',\'' + title + '\')" >&nbsp;&nbsp;<<<< &nbsp; </A>');
}

newdocument.write ('<A href="javascript:printBookMarks(0,'+'\'' + title + '\')" >&nbsp;&nbsp; Home&nbsp; </A>');

// Next
if ( eol == false)
{
newdocument.write ( '<A href="javascript:printBookMarks(' + (nextNumber) + ',\'' + title + '\')" >&nbsp;&nbsp; >>>> </A>');
}

newdocument.write('</FONT></strong></TD></TR></TABLE>')
newdocument.write('</body></html>')
newdocument.close();

}

chinni

6:36 pm on Sep 4, 2004 (gmt 0)

10+ Year Member



I appreciate any pointers towards identifying the problem and fixing it.

thanks a lot in advance,
Chinni

Cochrane

7:17 pm on Sep 4, 2004 (gmt 0)

10+ Year Member



Chinni:
Please forgive me, I know you don't need anyone to be a smartaleck about this, but I counted 59 newdocument.write commands. Now, maybe it's just me, but I can't imagine ANY reason for JavaScript code to be structured that way.
You said that you are "learning" JavaScript. Forgive me, just a little attempt at humor here, but who are you learning it from, the Devil?
For what it's worth, when I look at the code, it seems to me that you are using JavaScript to create multiple HTML documents, for the purpose of manipulating them as if they were hyperlinks. I have to ask myself, why not just create those HTML documents and then manage the links?
Honestly, I wish I could help you further, but 59 newdocument.write commands? Sorry, I have nothing substantive to offer.

chinni

9:59 pm on Sep 4, 2004 (gmt 0)

10+ Year Member



I am sorry I should have posted only one set of the functions, which are just two. There are three such sets in the post.

The 'newdocument' is a variable that i used to write in the current document. At any time I only open one document for writing.

Please consider only these two functions:
printGroupPage : This generates the basic html page code and calls the createPageList() function to create links.
createPageList(): This generate the page links from the data in a file.

I could have created a html file to create these links to those pages. If I want to show only 5 links in a page, i would end up adding more html pages.I want to simplify this. And if I want to add a new page group and a new page, I would have to edit the html page. But I do not want to edit the html file everytime I need to add a page or page group. With this approach i just need to add a new line in the data file, which I can automate this using a shell script at the backend.

I applied the same logic for different groups, one to show my book marks, one to show my news/blogs items. I want to maintain my own site with little effort by automating most of the work. These two functions would work for me for any number of pagegroups and pages in the group and limit changes to a datafile.

All the functions are working fine if I test them locally. But when I uploaded them and started using the links, then IE hangs.

The size of all these js functions that I am using are not greater than 30K. I read that the js pages are cached in the browser when they are first loaded and they are not loaded everytime they are referred.

Could someone give me a pointer to understand why IE hangs when I call one of these functions.

Thanks a lot,
Chinni

Rambo Tribble

12:37 am on Sep 5, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



All I can guess is that one or more of the objects referenced in the function does not exist. I suggest getting Mozilla or Firefox and using the JavaScript Console to see what error messages result from running your scripts locally versus served.

chinni

11:27 pm on Sep 5, 2004 (gmt 0)

10+ Year Member



Thank you verymuch Rambo. I could see some errors in javascript console on Mozilla firefox browser and recoded one function and it works fine now. But I still do not understand why those errors do not appear when I run the scripts locally.

Thank you very much Rambo.
Thanks and Regards,
Chinni