Avatar billede robse Nybegynder
18. august 2001 - 01:21 Der er 17 kommentarer

Ingen reload på nyhedsscript !

Hejsa 

Jeg har en del problemer. Jeg har lavet et nyhedssystem hvor et link til nyheden dukker op i en bjælke, hvorefter de fader ud og der dukker en ny nyhedslink op. Det virker sådan set rigtigt godt, men jeg har problemer med at det hele tiden starter forfra når man navigerer rundt på siden. 
Jeg skulle gerne ha\' lavet det så det kører helt uafhængigt af hvad brugeren ellers foretager sig på siden. 

Systemet står hele tiden og cirkler mellem de 15 seneste nyheder, og når brugeren så navigerer rundt på siden så starter den forfra igen og igen hvilket jo resulterer i at brugeren sjældent ser mere end højst en 4-5 nyhedslinks. 

Jeg ved godt at det kan ordnes med frames, men det er bare ikke lige en mulighed i dette tilfælde. 

Kan man via noget javascript lave det sådan at systemet ikke reloader når brugeren går ind på et nyt område på siden ? 

Håber der er nogen der kan hjælpe mig, for det er meget irriterende at det ikke vil virke helt efter planen. 

Robert
Avatar billede djeclemen Nybegynder
18. august 2001 - 01:27 #1
hmm lidt for mange point!!
Avatar billede robse Nybegynder
18. august 2001 - 01:29 #2
Hvorfor det ??? Jeg er desperat !

Hvad er problemet med at jeg giver 1000 point ?
Avatar billede jiggypoof Nybegynder
18. august 2001 - 01:31 #3
Du kan vel lave lidt cookies (:
Avatar billede jasber Nybegynder
18. august 2001 - 01:33 #4
En mulighed ku\' være at lave en random funktion som bestemmer hvilket link der vises. Det burde så i sidste ende resultere i at alle links vises stort set lige meget.
Avatar billede jiggypoof Nybegynder
18. august 2001 - 01:34 #5
Har du mulighed for ASP?
Avatar billede jiggypoof Nybegynder
18. august 2001 - 01:38 #6
Hvis nyhederne ligger i en database

Set RS = conn.Execute(\"Select Count(*) AS RecCount From table\")
recCount = RS(\"RecCount\")

CONST choiceCount = 5 \' or however many you want
CONST firstRecNum = 1 \' adjust if not true for your table
choices = \"\"
chosen = 0
Do While chosen < choiceCount
  choose = Int( Rnd * recCount ) + firstRecNum
  chTest = \"#\" & choose & \"#\"
  If InStr( choices, chTest ) = 0 Then
    choices = choices & chTest
    chosen = chosen + 1
  End If
Loop
choices = Replace( choices, \"##\", \",\" )
choices = Replace( choices, \"#\", \"\" )
SQL = \"SELECT fld1,fld2 FROM table \" _
        \"WHERE sequenceField IN (\" & choices & \")\"
Set RS = conn.Execute( SQL )


Avatar billede jasber Nybegynder
18. august 2001 - 01:42 #7
hvis du sku\' få lyst at lave noget i Java baseret på random kan du finde info om random funktionen her:
http://web-wise-wizard.com/javascript-reference/javascript-jscript-random-numbers-array.html
Avatar billede limemedia Nybegynder
18. august 2001 - 06:00 #8
har du overvejet at anvende frames til din løsning ? således at din nyhedsscroller IKKE reloades...
Avatar billede limemedia Nybegynder
18. august 2001 - 06:00 #9
ahh, læs spm :(
Avatar billede nikolajdu Nybegynder
18. august 2001 - 07:07 #10
Jeg ved odt det er en slags frame, men hvad med en Iframe/Ilayer løsning?
Avatar billede roenving Novice
18. august 2001 - 12:22 #11
Har du det i een side, hvis grundlag ikke ændres ?

Altså du har forskellige områder på din grundside, som ændrer sig efter behov?

Så kan du nemlig klare det på den simple måde:

Opret en global variabel i Head-sektionen: <script>var NewsNo=0</script>

Hvis ikke har, men skifter til andre sider bare med den samme news-ticker, har du ikke andre muligheder end noget kagebageri eller noget server-side (php, asp el.)

hth
jes
Avatar billede jakoba Nybegynder
20. august 2001 - 08:20 #12
Det irriterende er det:
a)  at nyhedssystemet hele tiden starter forfra med nyhed nr 1
eller
b)  at der hele tiden loades fra server.

a) klares nemt med en url-parameter i dine lokale links:

et lokalt link:  <a href=\"side2.html\">noget at klikke på</a>

bliver til lidt script i head (fælles for alle links:

<script language=\'javascript\'> <!--

var current = 0;    // index for \"nuværende nyhed\"
var params = null;

function getValues(){
  var values = document.URL.split(\'?\');
  if ( values.length <= 1 ) [
      // ingen url-parameter, start med nyhed nr 0.
  } else {
      // der er en url-parameter hent startnummer
      values = values[1].split(\"#\");
      values = values[0].split(\"&\");
          // opdel til et array på \"&\"
      params = new Array();
      for(var i=0; values.length>i; i++) {
    values[i]  = values[i].split(\'=\');
        params[values[i][0]] = unescape( values[i][1] );
      };
      if ( params[\'current\'] ) current = params[\'current\'];
  }
}; //end getValues() -> Array

getValues( );            // hent evt url-parametre
visNyhed( current );    //  aktiver din kode til at vise en nyhed.
                        // incrementerer current cyklisk

function localJump ( dest ) { // sæt url.parameter på lokalt link
    self.location = dest +\"?current=\" +current;
}

// --> </script>

og ved linket:
<a href=\"java script:void( localJump( \'side2.html\' ) )\">noget at klikke på</a>

mvh JakobA

ps: mht antal points, se: http://www.eksperten.dk/spm/67252
Avatar billede skovenborg Nybegynder
30. august 2001 - 19:16 #13
Lav menuen i en seperat frame hvor de forskellige link henviser til hovedsiden.
Avatar billede jakoba Nybegynder
15. november 2001 - 18:10 #14
lad os sige du har 11 entries i din nyhedsliste der skal cykles igennem

var nyheder = new Array( \"Nyhed 0\", \"nyhed 1\", \"nyhed 2, ... );
            // dine nyheder i et array genereret fra server.

var emner = nyheder.length;  // antal nyheder der skal cykles imellem
var tidPr = 5;              // hvert emne vises i 4 sekunder

var cyklusTid = emner * tidPr;  // tid for at se alle nyheder

function visNyhed() {
    var nu = new Date();
    nu = Math.round( nu.valueOf()/1000 )
    pos = nu % cyklustid;        // giver os vor position i cyklussen
    nyhed = Math.floor( pos / tidPr )  // vælg index for nyhed 0 til emner-1

    //  din kode til at vise nyheden med det nummer frem
};

i din body kommando laver du så en onload handeler:
<body ...  onload=\"setInterval(\'visNyhed()\', tidPr*1000 )\">

nu er de til enhver tid brugerens ur i PC-en der bestemmer hvilken nyhed der vises, så hvis han ser på dine sider i cyyklusTid sekunder vil han få alle nyhederne at se.

mvh JakobA
Avatar billede stefan_jensen Nybegynder
15. december 2002 - 23:25 #15
lukketid?
Avatar billede horsmark Nybegynder
15. oktober 2005 - 07:53 #16
lukketid??
Avatar billede horsmark Nybegynder
14. april 2006 - 14:20 #17
lukketid ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester