TP Underground Lounge 07/08
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.08.2004, 05:09   #1
TP-Member
 
Registriert seit: Aug 2004
Ort: Stuttgart
renkert.net macht alles soweit korrekt

An alle Javascript Profis


Hallo zusammen,

ich hab mal eine generelle Frage bzw. eine Idee und derzeit leider keine Ahnung wie sich das realisieren lässt.

Situation:
Ich möchte innerhalb einer Javascript-API einen Preloader integrieren. Dieser Preloader soll jedoch weniger wie in bislang bekannten Preloadern Grafikdateien laden, sondern soll je nach Einstellung verschiedene Javascript-Dateien (sogenannte Module) nachladen und bestimmte Javascript-Befehle ausführen, z.B. eine layerbasiertes Layout erstellen, indem dynamisch die notwendigen Layer generiert werden.

Plan:
Ich fände es toll, wenn wie unter WIN oder anderen OS ein Hinweisfenster mit einem Preload-Balken erscheint, der dem User anzeigt: Moment, alle Dateien werden geladen und alle Scriptbefehle ausgeführt.

Problem:
Nehmen wir an, der Preloader läuft in Realtime, dann muss ich a.) wissen, welche Speed der User hat (das kann man ja noch einigermassen exakt mit Javascript ermitteln), b.) wie gross die zu ladenden Dateien sind und c.) wie lange die Ausführung der Scripte benötigt.

Die Dateigrösse könnte man ja noch fix in einem Array ablegen und mittels Speed die Downloadzeit berechnen. Was aber, wenn die Dateigrösse variabel, also dynamisch ermittelt werden sollte.

Wie prüfe ich elegant, ob die Datei bereits im Cache des Browsers liegt?

Würde mich interessieren, ob sich schonmal jemand mit so etwas auseinander gesetzt hat oder mal gesehen hat...

Bin für jeglichen Input dankbar, auch für Hinweise auf Denkfehler...denen ich leider oft erlegen bin...


Danke vorab!
renkert.net ist offline   Mit Zitat antworten


Alt 26.08.2004, 07:34   #2
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
Ich finde solche Arten von Homepagegestaltung nicht wirklich gelungen, wenn von vornherein alle Surfer, die kein JS aktiviert haben, ausgeschlossen werden. Und das sind teilweise mehr als man denkt (zB. an vielen Firmen/Uni/Schulrechnern)
Adromir ist offline   Mit Zitat antworten
Alt 26.08.2004, 13:11   #3
TP-Member
 
Registriert seit: Aug 2004
Ort: Stuttgart
renkert.net macht alles soweit korrekt
Zitat:
Zitat von Adromir
Ich finde solche Arten von Homepagegestaltung nicht wirklich gelungen, wenn von vornherein alle Surfer, die kein JS aktiviert haben, ausgeschlossen werden. Und das sind teilweise mehr als man denkt (zB. an vielen Firmen/Uni/Schulrechnern)
Das war irgendwie nicht meine Frage, oder ? Wer hat von einer Homepage gesprochen ?
renkert.net ist offline   Mit Zitat antworten
Alt 26.08.2004, 14:03   #4
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
Crossbrowser wirds schwierig denke ich... Einige Einschränkungen musst du definitiv hinnehmen, da ich nicht glaube, dass du die Grösse einer Datei per JS herausbekommst... Beim IE gibt es für viele Objekte, die readyState-Eigenschaft. Diese kannst du abfragen und weisst ob das Script/Modul fertig geladen ist oder nicht. Genauso kannst du auch auf events reagieren:
Code:
function checkLoaded() {
    if (this.readyState == "complete") {
        // preloader-update...
    }
}

modul1.onreadystatchange = checkLoaded;
modul2.onreadystatchange = checkLoaded;
modul3.onreadystatchange = checkLoaded;
...
...das nurmal kurz angerissen. Das gleiche kann man sicher auch mit Mozilla lösen - musste mal schauen.

http://www.bindows.net ...nutzt sowas z.B. auch seeehr oft.

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 26.08.2004, 14:17   #5
TP-Member
 
Registriert seit: Aug 2004
Ort: Stuttgart
renkert.net macht alles soweit korrekt
Danke erstmal, bindows kenne ich, ist aber leider nicht OpenSource oder GPL. Davon abgesehen basiert bindows auf einem anderen Ansatz, XML, das hatte ich nicht vor, da das unter IE nur unter Verwendung von ActiveX Kompontenten funktioniert.

Die Idee mit readyState hatte ich auch schon, das wäre die Lösung, ist leider nicht mit Mozilla hinzubekommen....bzw ist es schon (siehe http://www.formatvorlage.de/mozine/archives/000134.html), dann müsste ich aber auch auf XML umsteigen...boah....hab ich echt keine Lust...

Vielleicht findet noch jemand was.....

Trotzdem Danke Mojo....
renkert.net ist offline   Mit Zitat antworten
Alt 26.08.2004, 15:04   #6
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
zu Bindows: ne GPL würde dir auch nix bringen (ich geh mal davon aus, dass du dein Werk nicht auch unter dieser veröffentlichen willst)...

Mozilla unterstütz sowas ähnliches:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
                      " DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>Test</title>
</head>
<body>
<script>
function malschauen() {
    try {
        nachgeladen();
    } catch(e) {
        alert(e.message);
    }
}

var lala = document.createElement("script");
lala.src = "lala.php";
lala.language = "JavaScript";
lala.onreadystatechange = malschauen;

if (document.addEventListener)
    lala.addEventListener("load", malschauen, false);


var head = document.getElementsByTagName("head")[0];
head.appendChild(lala);
alert("und los...");

</script>
</body>
</html>
dann die lala.php z.B. so:
PHP-Code:
<?php
sleep
(2);
?>
function nachgeladen() {
    alert("ich wurde nachgeladen");
}
Klappt im IE und im Mozilla... Opera leider nicht...

Gruss
Jan
Stuck Mojo ist offline   Mit Zitat antworten
Alt 27.08.2004, 09:11   #7
TP-Member
 
Registriert seit: Aug 2004
Ort: Stuttgart
renkert.net macht alles soweit korrekt
Muss ich mir mal anschauen, hmmm, ein ähnliches Schnippsel hab ich auch bereits in meiner API, auch mit dem Vermerk no Opera:


// Geht nur in IE und MOZ, no OP
maxxPROTO.load_js=function(js)
{
var scriptTag = this.elm.getElementById('loadScript');
var head = this.elm.getElementsByTagName('head').item(0);
if(scriptTag)
head.removeChild(scriptTag);
script = this.elm.createElement('script');
script.src = this.modulepath+js+".js";
script.type = 'text/javascript';
script.id = 'loadScript';
head.appendChild(script);
}

hab ich mit document.write ('<script>.......</script>') umgangen....hier gibts nur ein Problem mit dem "wann wird das script eingeladen", das muss ich nochmal testen....


Das mit der Lizenz iss nicht so wichtig, Javascript lässt sich sehr schlecht codieren, von daher iss es nachher eh egal...

Trotzdem Danke nochmal...

Geändert von renkert.net (27.08.2004 um 09:20 Uhr).
renkert.net ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > HTML Puristen > Javascript
An alle Javascript Profis An alle Javascript Profis
« Javascript Link setzen im Dreamweaver | Textstelle aktualisieren mit Javascript »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Javascript & PHP Mailer... DoRiMaN Webdesign & Co. 8 15.07.2003 10:23
Ganz allgemein: Vorhandensein von JavaScript voraussetzen, oder nicht? AnoToto Webdesign & Co. 3 13.02.2003 00:14
Javascript bedenklich? sue007 Webdesign & Co. 4 13.08.2002 12:57
Mit Javascript per Link neues Fenster öffnen Tobstar Javascript 7 27.06.2002 11:07
Text für .htm Dokumente aus Javascript importieren? NicNac Webdesign & Co. 4 26.04.2001 09:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:44 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67