online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Benny_Aua vom 06.03.2019, 10:18 Options

Laufschrift ist abhängig von der PC-Geschwindigkeit mal zu schnell, mal zu langsam

Hallo, für meine Website habe ich folgende Laufschrift programmiert:

<head>
...
<script language="JavaScript1.2" type="text/javascript">
<!--
<!-- Laufschrift -->

var z=1;
var b=1;
var g=1;

function laufe()
{
if (document.layers) document.band.left=z;
else document.all.band.style.left=z;
z-=g;
if(z<-2500)z=910;
setTimeout("laufe()",b);
}
//-->
</script>

<style type="text/css">
<!--
#band
{
position:absolute;
}
h4{ color:white;}
//-->
</style>

<meta name="author" content="">
</head>

<body onLoad="laufe()" bgcolor="#383539" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">

<!--Ticker//-->
<DIV ID="band">
<table width="100%">
<tr>
<td width="100%" nowrap>
<h4>
Neu: bla,bla,bla
-> XXXXX: täglich 9.00-13.05 Uhr
-> YYYY: Montag, Mittwoch und Freitag 9.00-11.30 Uhr
</h4>
</td>
</tr>
</TABLE>
</DIV>
...


Das Problem ist nun, daß auf schnellen Rechnern das Laufband recht flott zu Ende ist und dann eine längere Pause entsteht, bevor es von vorne beginnt.
Bei sehr langsamen Rechnern bricht es hingegen vor dem Ende ab und beginnt am Anfang von Neuem.

Frage: gibt es auch eine hardware-unabhängige Lösung?

DANKE IM VORAUS!


Antwort schreiben

Antwort 1 von mubarak vom 06.03.2019, 10:48 Options

Hi, sicher hängt es auch von der Rechnergeschwindigkeit ab und der im Script programmierten Schrittgeschwindigkeit. Hast schon mal nach fertigen Laufschriften geschaut? Vielleicht kannst du dir dort was abschauen. Ich verwende z.B. ein Applet von DanCity auf Java-Basis. Es gibt aber auch noch viele Andere z.B. wo man den Anzeigetext in eine externe Datei eingeben kann z.B. hier:http://www.methodica.ch/download/ticker/t_ticker.htm

Antwort 2 von Proggi vom 06.03.2019, 11:50 Options

die ist deshalb abhängig von der rechnergeschwindigkeit weil du 2 fehler drin hat:


function laufe() {
... laufe()

ungünstig da du bei jedem durchlauf wieder einen durchlauf startest. das heißt das programm belegt immer mehr speicher da die schleife nicht beendet wird.


anstelle von Laufe kannst au auch schreiben::


function laufe() {
if (document.layers) document.band.left=z;
else document.all.band.style.left=z;
z-=g;
if(z<-2500)z=910;
setTimeout("
Zitat:
function laufe() {
if (document.layers) document.band.left=z;
else document.all.band.style.left=z;
z-=g;
if(z<-2500)z=910;
setTimeout("laufe()",b);
}
",b);
}


und in der schleife wird es wieder ersetzt etc also jeder weitere durchlauf der schleife wartet auf das ende der in ihr wieder gestarteten schleife - starte nicht aus einer schleife die gleiche schleife wieder da du damit eventuell versehendlich eine kaskade startest...

zweiter fehler:
du setzt ein timeout von 1 also 1/1000s das ist so wenig das du versuchst 1000 durchläufe pro sekunde zu machen daher läußt das viel zu schnell wenn der pc mitkommt.


Lösung:

Zitat:
<body onLoad="setInterval('laufe()', 100);">


ruft laufe alle 0,1 sekunden auf

Laufe selber must du dann umschreiben:
Zitat:
function laufe() {
if (document.layers) {
document.band.left=z;
}
else {
document.all.band.style.left=z;
}
z-=g;
if (z<-2500) {
z=910;
}
}


müste etwa hinkommen - ich hab nun dein Laufe nur so umgeschrieben das laufe selbst sich nicht wieder aufruft und gewöhne dir an deinen quelltext einheitlicher zu gestallten, also blöcke mit klammern abzuschließen um start und ende einer if-schleife besser finden zu können.

Antwort 3 von Proggi vom 06.03.2019, 11:52 Options

kleine korrektur (aber vom grundsatz bleibts ungünstig mit dem laufe...laufe)

die vorherige schleife wird schon beendet da du die im timeout startest, aber ich würde trotzdem vermeiden die schleife in der schleife zu starten da es zu unerwünschten nebeneffekten führen kann eine schleife sich selbst ausführen zu lassen.

Antwort 4 von rfb vom 07.03.2019, 11:48 Options

Wenn du schon solchen Unsinn einbaust kannst du auch einfach das proprietäre Tag
marquee
nutzen, schlimmer wird dein Quellcode dadurch auch nicht.

Letztlich nervt bewegte Schrift nur, daher ein gut gemeinter Rat: lass es einfach weg!

Antwort 5 von benny_aua vom 09.03.2019, 13:05 Options

Vielen Dank für die Tipps, es funktioniert super!

Antwort 6 von rfb vom 09.03.2019, 14:13 Options

Zitat:
Vielen Dank für die Tipps, es funktioniert super!
ich hoffe du meinst den letzten Tipp
Zitat:
lass es einfach weg!

Ähnliche Themen

USB Geschwindigkeit trotz 2.0 nicht höher
Elsa  25.04.2007 - 108 Hits - 16 Antworten

2 Mbit DSL 330 kb/s Geschwindigkeit???
Reoreo  08.10.2007 - 131 Hits - 2 Antworten

Maus läuft mal schnell, mal langsam!
Sushi  25.04.2008 - 30 Hits - 2 Antworten

Windows Movie Maker kein Laufschrift. Wie geht das???
noelchen  16.06.2008 - 49 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026