• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Text vorladen

Overtone

Neues Mitglied
Auf einer Kunden-Webseite hatte ich zur Anzeige dessen Referenzen mit einem onclick-Link einen unsichtbaren Layer geöffnet. Der Vorteil hier war, dass die Daten sofort zur Verfügung standen, da dieser Layer ja bereits beim Öffnen der Seite geladen wurde. Da alleine der Umfang des Layers 200 kb beträgt wurde dieser entfernt und durch einen AJAX-Script ersetzt, welcher tatsächlich erst dann den Layer lädt sobald auf den Link geklickt wird. Damit wollte man den Usern gerecht werden, welche die Seite von mobilen Endgeräten aus besuchen. Jetzt benötigt natürlich der Layer geraume Zeit bis er geladen wird und bleibt so lange (insbesondere natürlich bei den Usern mit mobilen Endgeräten) weiß. Gibt es eine Möglichkeit hier den Text bereits zeilenweise vorzuladen, damit hier unmittelbar nach dem Öffnen bereits etwas zu lesen ist?
 
Ich habe keine Ahnung, wie das funktionieren könnte. Aber die Frage ist, ob das dem Kunden mit mobielen Endgeräten gegenüber gerecht wrid. Bei mobilen Endgeräten ist es oftmals so, dass der Internetzugang über die Download-Menge abgerechnet wird. Also ich würde in so einem Fall nicht wollen, dass irgendwas heruntergeladen wird, was ich nicht sehen will, mich aber trotzdem etwas kostet.

Gruß thuemmy
 
Du hast keinen Einfluss darauf, wie (in welcher Reihenfolge) der Browser eine Seite darstellt. Du kannst auch nicht wissen, welche Inhalte zuerst geladen werden, weil die Ladezeit unterschiedlich sein könnte. Du kannst also nur sagen, was alles geladen werden soll, aber wann das Laden fertig ist und wann genug geladen ist, dass der Browser etwas darstellen kann, und wann er es dann letztendlich tut, darauf hast Du keinen Einfluss.
 
Hallo Efchen,

das ist mir schon klar. Es wird aber hier davon ausgegangen, dass der User genügend Zeit verstreichen lässt, bevor er den Referenzen-Button betätigt, damit also auch auf einem mobilen Endgerät (hier auch eher ein Notebook oder Netbook mit Mobil-Stick und nicht ein PDA oder sogar ein Handy) die Seite (und eben auch der vorzuladende Text (ca. 20 Zeilen) für den Referenzen-Layer) bereits komplett geladen ist. Klickt er dann auf den Referenzen-Button sollen sofort die besagten ersten 20 Zeilen erscheinen. In der Zeit in welcher der User mit Lesen beschäftigt ist sollen dann die weiteren Referenzen nachgeladen werden.
 
Ich würde das mit Javascript machen, ich weiß nicht ob es da eine andere methode gäbe....

Ich mache es hier mit einem span, das erscheint mir sinnvoller, da divs nur zur Seiten unterteilung sind
Code:
<script type="text/javascript">
function Spananzeigen/verstecken(NamedesSpans)
{
        if(document.getElementById(NamedesSpans).style.visibility="hidden") 
       {
       document.getElementById(NamedesSpans).style.visibility = "visible";
       }
   else 
       {
       document.getElementById(NamedesSpans).style.visibilty="hidden";
       }
}
und als passenden html dazu

HTML:
<input type="button" value="Spananzeigen/verstecken" onClick="Spananzeigen/verstecken(NamedesSpans)">

<span id="NamedesSpans" type="hidden"> <!-- das Zeug für das Div musst du nat noch im Css devinieren, hier kommt der inhalt des dives rein
so falls fehler drin sind tuts mir leid, bin in England, und hab hier nur Notepad, was die Sache nicht einfacher macht.

Vom Grundprinzip sollte es richtig sein.


Dir muss allerdings klar sein, das nicht jeder Javascript aktiviert hat, deswegen muss das nicht funktionieren


MfG
 
Zuletzt bearbeitet:
Dir muss allerdings klar sein, das nicht jeder Javascript aktiviert hat, deswegen muss das nicht funktionieren

Er lädt den Text ja mit Ajax vor, also geht er davon aus, dass Javascript aktiviert ist.

Du könntest während dem Laden den Layer mit visibility, opacity oder display:none verstecken, indem du ganz einfach dem Element diese CSS-Eigenschaft zuschreibst bei Aufruf. Bei Bildern gibt es zusätzlich noch den JavaScript-Event onload, mit dem du du nach dem Laden eines Bildes etwas anderes anzeigen lassen kannst. Auf meiner Seite sieht das dann so ähnlich aus, vielleicht hilft es ja, ich kenne mich leider mit ajax nicht aus:

var photo = new Image();
photo.onload = function () { alert('bild geladen'); }
photo.onerror = function () { alert('error'); }
photo.src = 'bild.jpg';

mfg
 
Zurück
Oben