Frage zu Javscript

son gohan

Erfahrenes Mitglied
Hallo,

ich habe mal eine Frage, also zuerst zum tausensten mal vielleicht vorab, auch wenn ich an die 600 Beiträge habe bin ich nur ein Hobby Webdesigner und habe nie etwas richtig gelernt, bin aber bereit und willig in guten Gesprächen hier bei tutorials.de etwas dazu zu lernen.

So, nun mal die Frage:

Ich habe da ein Javascript welches jeden Tag einen neuen Tipp ausgibt. Kennt bestimmst fast jeder:
HTML:
<script language="JavaScript" type="text/javascript">
<!--
var today_obj=new Date()
var today_date=today_obj.getDate()
var tips=new Array()
var tiptitle=''
tips[1]='Tipp 1'
tips[2]='Tipp 2'
document.write(tiptitle)
document.write(tips[today_date]+'')
//-->
</script>

Da kann man dann soweit ich weis so viele Tipps reinmachen wie man Lust hast.

Ich habe zurzeit 31 Tipps drine stehen die ich jeden monat änder. Jetzt habe ich aber vor dort 365 Tipps einzutragen um nicht immer jeden Monat aufs neues das bearbeiten zu müssen.

Das Problem könnte allerdings sein, das die Seite dadurch zu groß wird wegen den vielen neuen Tipps und ich eine zu lange Ladezeit haben würde für die Seite.

Deswegen würde ich gerne mal nachfragen, ob jemand eine Technik kennt wie man trotzdem eine längere Ladezeit verhindern kann?
 
JavaScript ist Clientseitig!
Und wenn Du die Auswahl eines Tipps von vielen erst auf dem Client durchführen willst, wirst Du ihm das Array übermitteln müssen. So kann auch jeder, der mal einen Blick in den Quelltext wirft sofort alle Deine Tipps lesen.
Ich würde Dir empfehlen, das ganze mit PHP zu machen (ggf. die Tipps sogar in einer Datenbank ablegen) und nur den jeweils aktuell anzuzeigenden Tipp übertragen.

Gruß hpvw
 
Du könntest das komplette Script in PHP schreiben. PHP ist einer serverseitige Scriptsprache, die relativ weit verbreitet ist. Der Server verarbeitet das PHP-Script und schickt je nach Tag nur den Jeweiligen Tipp als HTML-Code an deine Seitenbesucher.

Jetzt müsste man natürlich als erstes wissen, ob dein Server PHP unterstützt.

Ein entsprechendes (einfaches - man könnte es sicher noch eleganter machen) PHP-Script sähe dann z.B. so aus:
PHP:
<?php
   	$tip[1] = 'Erster Tipp';
   	$tip[2] = 'Zweiter Tipp';
   	$tip[3] = 'Dritter Tipp';
   	
   	(...)
   	
   	$tip[365] = 'Dreihundertfünfundzsechzigster Tipp';
   	
   	echo $tip[date('z')];
 ?>
Du müsstest es nur in deine html-Datei an die gleiche Stelle wie vormals das JavaScript einfügen und ihr die Dateiendung ".php" geben statt z.B. ".html" oder ".htm".

Edit:
Da war wohl jemand ein klein wenig schneller im Tippen als ich. Aber es ist tröstend zu wissen, dass es noch langsamere gibt, gell Thomas... :rolleyes:
 
Zuletzt bearbeitet:
Ich denke mal mit JavaScript wirst du das nicht beschleunigen können. Ich würde einfach aus Performance und auch aus administrativen Gründen auf eine Variante zurückgreifen, die auf eine serverseitige Lösung zurückgreift ( z.B. PHP / MySQL ).

Das hat dann auch den Vorteil das das auch funktioniert, wenn im Browser clientseitig JavaScript deaktiviert und/oder eingeschränkt ( Servicepack 2 unter XP ) ist.
 
Hallo,

dank für eure Tipps erstmal. Ich dene dann werde ich doch natürlich lieber die PHP Lösung nehmen. MySQL wäre wohl doch ein Schritt zu kompliziert für mich. :rolleyes:

Wenn ich mit dem PHP Script:
HTML:
<?php
	   $tip[1] = 'Erster Tipp';
	   $tip[2] = 'Zweiter Tipp';
	   $tip[3] = 'Dritter Tipp';
	   
	   (...)
	   
	   $tip[365] = 'Dreihundertfünfundzsechzigster Tipp';
	   
	   echo $tip[date('z')];
?>

Alle 365 Tipps reinschreibe, wie sieht es dann mit der Ladezeit aus, doch bestimmt genau soschlecht wie bei Javascript. Es ist doch immerhin schon etwas viel Code so 365 zweizeilige Tipps zu schreiben und dann noch auf der Startseite anzuzeigen?

Oder sollte ich den Code:
HTML:
<?php
	   $tip[1] = 'Erster Tipp';
	   $tip[2] = 'Zweiter Tipp';
	   $tip[3] = 'Dritter Tipp';
	   
	   (...)
	   
	   $tip[365] = 'Dreihundertfünfundzsechzigster Tipp';
	   
	   echo $tip[date('z')];
?>
so erst mal schreiben mit 365 Tipps und dann in eine externe PHP Datei packen und mit einem PHP Befehl, ich glaub
HTML:
<?php  include (""); ?>
include oder so einbinden?

viele grüße
feh
 
Welche der beiden Varianten (ob direkt in der Datei oder per include) Du nimmst ist Jacke, wie Hose. Die Ladezeit wird sich gegenüber der JS-Variante mit Sicherheit verbessern, da Du ja nur einen Tipp übertragst und 364 Tipps auf Deinem Server lässt.
 
hi,

Die Ladezeit wird sich gegenüber der JS-Variante mit Sicherheit verbessern, da Du ja nur einen Tipp übertragst und 364 Tipps auf Deinem Server lässt.

ja doch, irgendwie schon logisch, wenn ich das ganze include wird es ja sowieso wieder nur so aufgebaut und ausgegeben an den Browser, als ob es schon drine gewesen wäre, soweit ich weis.

Ob der Browser auch alle Tipps lesen tut oder nur einen weis ich nicht. aber das die Datei dann schon mehrere KB groß sein wird bei 365 Tipps ist doch auch klar

Naja, aber das wird schon in Ordnung sein denke ich, wenn ihr das so sagt.

Oder würde den jemand sagen mach lieber nur 100 Tipps wegen der Ladezeit oder so?
 
Wie wir dir schon gesagt haben: Das ist ja gerade der Witz. Es sind alle 365 Tipps auf dem Server gespeichert, aber der Server überträg nur einen Tipp in HTML-Format an den der deine Seite Aufruft -> Weniger Daten zu übertragen -> Kleinere Übertragungszei -> Kleinere Ladezeit.

Es macht keinen Unterschied ob du 20 Mio Tipps oder nur 10 Tipps reinschreibst. Die Ladezeit des Empfängers bleibt immer gleich und der Server braucht nur etwa 2 Milisekunden mehr mehr um den richtigen Tipp zu finden. Einzig der Festspeicherbedarf wird größer.
 
Zuletzt bearbeitet:
Hallo,

ja das ist doch toll so. Danke. Ich hoffe Ihr Verlangt nicht irgendwann mal Geld für solch einen super Support. Wenn doch mache ich meine eigene kostenloses Forum auf.;)

gruß
feh
 
Hallo,

ein Frage nochmal zu dem Script bitte:

PHP:
 <?php
	   $tip[1] = 'Erster Tipp';
	   $tip[2] = 'Zweiter Tipp';
	   $tip[3] = 'Dritter Tipp';
	   
	   (...)
	   
	   $tip[365] = 'Dreihundertfünfundzsechzigster Tipp';
	   
	   echo $tip[date('z')];
?>

Kann man das auch so schreiben das zwar jeden Tag ein neuer Tip ausgegeben wird, aber auch bei jedem Neuladen der Seite wiederum ein neuer angezeigt wird.

Ich kenn zurzeit auch ein anderes PHP Script das bei jedem Neuladen der Seite einen neuen Tip ausgebt, aber sobald man die URL eingibt im Browser und die Seite besucht, fängt das SCript ja immer wieder von vorne bei 1 an und das ergibt ein unschönes Resultat.

gruß
feh
 
Zurück