hi zusammen,
hab mir auch ein Javamenü aus dem internet geholt (von http://skripte.rabich.de/skripte/anwendungen/menue.html) leider ist es für einen 56Kmodem Benutzer total langsam..,.... kann ich da etwas an der Geschwindigkeit ändern ?
http://www.draischiibe.de
für Hilfe wäre ich dankbar.
Grüsse sascha
quellcode:
/*
================ Anwendung: Menue
Copyright (c) 2000 by DS. Alle Rechte vorbehalten.
Version: 2.3.1b Datum: 23.9.1999
Aenderungen: 23.2.2000 Optimierungen 15.3.2000 oeffne_menue_pfad() implementiert
Das Dokument enthaelt alle zentral zur Verfuegung stehenden Funktionen.
*/
// === Variablen (global) ===
var eintraege = new Array() var bildname = "Bild"
// === Parameter (Vorbelegung) ===
var body_bgcolor = "FF0000" var body_background = "" var body_text = "FFFFFF" var body_link = "FFFFFF" var body_alink = "FFFFFF" var body_vlink = "FFFFFF" var body_hover = "CCCCFF" var a_underline = false var menue_pre = "<B><SMALL>" var menue_post = "</SMALL></B>" var eintrag_pre = "<EM><SMALL>" var eintrag_post = "</SMALL></EM>" var menue_titel = "<TABLE WIDTH="100%" CELLPADDING="2" CELLSPACING="0" BORDER="0" BGCOLOR="#CCCCFF">" + "<TR ALIGN="CENTER">" + "<TD><B><FONT COLOR="#FFFFFF">Menü</FONT></B></TD>" + "</TR>" + "</TABLE>" var menue_style = "font-family: Verdana, Arial, sans-serif;" var rand = 0 var bild_eintrag = "normal.gif" var bild_menue_offen = "offen.gif" var bild_menue_geschlossen = "geschlossen.gif" var bild_breite = 12 var bild_hoehe = 12 var frame_name = "menuetree" var extra = true var extra_text_expand = "Aufbauen" var extra_text_collapse = "Abbauen" var extra_pre = "<SMALL>" var extra_post = "</SMALL>" var exclusive = false var copyright = true
// === Hilfsfunktionen ===
// Cookie lesen function read_cookie(cookie_name) { var cookie_string = document.cookie var cookie_array = cookie_string.split(";") var array_size = cookie_array.length var cookie_teile
var i = 0
for(i = 0; i < array_size; i++) { cookie_teile = cookie_array[i].split("=") if(cookie_teile[0].substring(0, 1) == " ") cookie_teile[0] = cookie_teile[0].substring(1, cookie_teile[0].length) if(cookie_teile[0] == cookie_name) return unescape(cookie_teile[1]) }
return "" }
// Cookie schreiben function write_cookie(cookie_name, cookie_wert, gueltigkeitszeitraum) { if(gueltigkeitszeitraum) { var ablauf_datum = new Date()
ablauf_datum.setTime(ablauf_datum.getTime() + gueltigkeitszeitraum) document.cookie = cookie_name + "=" + escape(cookie_wert) + "; " + "expires=" + ablauf_datum.toGMTString() } else document.cookie = cookie_name + "=" + escape(cookie_wert) }
// Knoten ermitteln function set_nodes() { var i
for(i = 0; i < (eintraege.length - 1); i++) if(eintraege[i + 1].level > eintraege[i].level) { eintraege[i].node = true eintraege[i].open = false } }
// Aufnahme eines neuen Menueeintrags function neuer_eintrag(level, name, url, target, desc, image, image_open) { this.level = level this.name = name this.url = url this.target = target this.node = false this.open = false this.description = desc this.image = image this.image_open = image_open }
// Eintrag vornehmen und Verzweigungsermittlung function eintrag(level, name, url, target, desc, image, image_open) { var pos = eintraege.length
if(level < 1) { alert("Level-Werte bitte ab 1 anlegen!") return }
if(arguments.length < 2) { alert("Es muessen mindestens die ersten beiden Argumente angegeben werden.") return }
eintraege[pos] = new neuer_eintrag(level, name, (arguments.length > 2) ? url : null, (arguments.length > 3) ? target : null, (arguments.length > 4) ? desc : null, (arguments.length > 5) ? image : null, (arguments.length > 6) ? image_open : null) }
// Untermenue oeffnen oder schliessen function submenue(nr) { // Alle Untermenues schliessen (ausser nr) function close_submenues(nr) { var i for(i = 0; i < eintraege.length; i++) if((i != nr) && eintraege[i].node) eintraege[i].open = false }
// Untermenue nr exklusiv oeffnen function open_submenues(nr) { function open_super_level(nr, lvl) { if((nr == 1) || (lvl < 1)) return
var i for(i = nr - 1; i >= 0; i--) { if((eintraege[i].level == lvl) && eintraege[i].node) { eintraege[i].open = true open_super_level(i, lvl - 1) return } } return }
open_super_level(nr, eintraege[nr].level - 1) }
eintraege[nr].open = !eintraege[nr].open if((eintraege[nr].target != null) && (eintraege[nr].url != null)) frames[eintraege[nr].target].location.href = eintraege[nr].url if(eintraege[nr].open && exclusive) { close_submenues(nr) open_submenues(nr) } write_menue() }
// Alle Untermenues oeffnen function expand() { var i
for(i = 0; i < eintraege.length; i++) if(eintraege[i].node) eintraege[i].open = true write_menue() }
// Alle Untermenues schliessen function collapse() { var i
for(i = 0; i < eintraege.length; i++) if(eintraege[i].node) eintraege[i].open = false write_menue() }
// Kommentar in der Statuszeile anzeigen function show(comment) { status = comment }
// Kommentar aus der Statuszeile entfernen function hide() { status = "" }
// Ausgabe eines Menueeintrags function ausgabe(nr) { with(self[frame_name].document) { var i var tag_a_anfang = "" var tag_a_ende = "" var tags_pre = "" var tags_post = "" var tag_img = "" var titel = "" var bild = ""
write("<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">\n<TR ALIGN="LEFT" VALIGN="CENTER">\n<TD>")
// Platzhalter if(eintraege[nr].level > 1) write("<IMG SRC="leer.gif" WIDTH="" + String(bild_breite * (eintraege[nr].level - 1)) + "" HEIGHT="" + String(bild_hoehe) + "" BORDER="0" ALT="">")
tag_a_ende = "</A>"
// Untermenues / normaler Eintrag if(eintraege[nr].node) { titel = eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name bild = eintraege[nr].open ? (eintraege[nr].image_open ? eintraege[nr].image_open : bild_menue_offen) : (eintraege[nr].image ? eintraege[nr].image : bild_menue_geschlossen)
tags_pre = menue_pre tags_post = menue_post tag_a_anfang = "<A " + "HREF="javascript:parent.submenue(" + String(nr) + ")" " + "onMouseOver="parent.show('" + titel + "'); return true" " + "onMouseOut="parent.hide()" " + "TITLE="" + titel + """ + ">"
} else { titel = eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name bild = eintraege[nr].image ? eintraege[nr].image : bild_eintrag
tags_pre = eintrag_pre tags_post = eintrag_post tag_a_anfang = "<A " + "HREF="" + eintraege[nr].url + "" " + "onMouseOver="parent.show('" + titel + "'); return true" " + "onMouseOut="parent.hide()" " + (eintraege[nr].target ? (" TARGET="" + eintraege[nr].target + "" ") : "") + "TITLE="" + titel + """ + ">"
}
tag_img = "<IMG " + "SRC="" + bild + "" " + "WIDTH="" + String(bild_breite) + "" " + "HEIGHT="" + String(bild_hoehe) + "" " + "BORDER="0" " + "NAME="" + bildname + String(nr) + "" " + "ALT="" + titel + """ + ">"
write(tag_a_anfang + tag_img + tag_a_ende) write("</TD>\n<TD>") write(tag_a_anfang + tags_pre + eintraege[nr].name + tags_post + tag_a_ende)
writeln("</TD>\n</TR>\n</TABLE>")
} }
// Ausgabe aller Eintraege eines Levels und eines Untermenues function ausgabe_eintraege(lvl, start) { var i
with(self[frame_name].document) { for(i = start; i < eintraege.length; i++) { if(eintraege[i].level < lvl) return if(eintraege[i].level == lvl) { ausgabe(i) if(eintraege[i].node) if(eintraege[i].open) ausgabe_eintraege(lvl + 1, i + 1) } } } }
// Menuedokument schreiben (dynamisches Dokument erzeugen) function write_menue() { with(self[frame_name].document) { open("text/html", "replace")
// Kopf writeln("<HTML>\n<HEAD>\n<TITLE>Menü</TITLE>") writeln("<!--\n\nGeneriert mit Hilfe des Menueskripts\nvon Dietmar Rabich, Duelmen.\n\nhttp://www.rabich.de\n\n-->") writeln("<META NAME="AUTHOR" CONTENT="Dietmar Rabich">") writeln("<META NAME="COPYRIGHT" CONTENT="Dietmar Rabich, Dülmen">") writeln("<META NAME="ROBOTS" CONTENT="NONE">") writeln("<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; CHARSET=iso-8859-1">") writeln("<STYLE TYPE="text/css">\n<!--") if(!a_underline) writeln("A {text-decoration: none;}") writeln("A:hover {color: #" + body_hover + ";}") if(menue_style != "") writeln("BODY, A, P, TD, H1, H2, H3, H4, H5, H6 {" + menue_style + "}") writeln("//-->\n</STYLE>") writeln("</HEAD>")
// Koerper writeln("<BODY BGCOLOR="#" + body_bgcolor + "" TEXT="#" + body_text + "" LINK="#" + body_link + "" ALINK="#" + body_alink + "" VLINK="#" + body_vlink + "" LEFTMARGIN="" + rand + "" TOPMARGIN="" + rand + "" MARGINWIDTH="" + rand + "" MARGINHEIGHT="" + rand + """ + (((body_background != "") && (body_background != null)) ? (" BACKGROUND="" + body_background + """) : "" ) + ">") if(menue_titel != "") writeln(menue_titel) write("<P>") ausgabe_eintraege(1, 0) writeln("</P>") if(extra) { write("<P ALIGN="CENTER">" + extra_pre) if(!exclusive) write("<NOBR>[ <A HREF="javascript:parent.expand()" TITLE="" + extra_text_expand + "">" + extra_text_expand + "</A> ]<WBR></NOBR> ") write("<NOBR>[ <A HREF="javascript:parent.collapse()" TITLE="" + extra_text_collapse + "">" + extra_text_collapse + "</A> ]<WBR></NOBR>") writeln(extra_post + "</P>") } if(copyright) { write("<HR SIZE="2" WIDTH="90%" ALIGN="CENTER" COLOR="" + body_text + "">\n<P ALIGN="CENTER"><SMALL><SMALL>") write("Copyright © 2000 by <A HREF="http://www.rabich.de/" TARGET="_blank">Dietmar Rabich</A>, Dülmen.<BR>") write("Alle Rechte vorbehalten.") writeln("</SMALL></SMALL></P>") } writeln("</BODY>") writeln("</HTML>")
close() }
// Menues in Cookie merken if(rebuild) { var s = "" var i
for(i = 0; i < eintraege.length; i++) if(eintraege[i].node) if(eintraege[i].open) s += ((s == "") ? "" : ",") + String(i) write_cookie("OpenNodes", s, 1000 * 60 * 60 * 24 * 92) } }
// === Menuefunktionen ==
// Ausgabe des kompletten Menues function menue() { set_nodes()
// Menues/Cookie auswerten if(rebuild) { var s = read_cookie("OpenNodes") var sarr = s.split(",") var i var nr
for(i = 0; i < sarr.length; i++) { nr = parseInt(sarr[i]) if(!isNaN(nr)) if(eintraege[nr].node) eintraege[nr].open = true } }
write_menue() }
// Menue mit IDs oeffnen function oeffne_menue_pfad(ids) { set_nodes()
var sarr = ids.split(",") var i var nr
for(i = 0; i < sarr.length; i++) { nr = parseInt(sarr[i]) if(!isNaN(nr)) if(eintraege[nr].node) eintraege[nr].open = true }
write_menue() }
// === EOF ===