10 regels in een div laten zien.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cake Masher

Cake Masher

10/12/2012 20:35:17
Quote Anchor link
Beste,

Ik heb op 't moment een pagina waar d.m.v. javascript om de zo veel tijd een bericht neer word gezet vervolgens door een nieuwe lijn (\n). Deze word d.m.v. de <pre> tags netjes weergeven.

Nu ben ik tegen het probleem aangelopen, dat als ik het systeem een tijdje laat draaien, het enorm begint te haperen en moeilijk gaat doen omdat zo veel text in de div staat.

Nu wou ik graag zo maken dat ik 10 regels te zien krijg, dus als er al 10 regels staan en er komt een nieuwe regel bij, dan word de laatste regel verwijderd. 10 noem ik even als voorbeeld, kan natuurlijk ook 20, of 100 zijn.

Ik weet niet precies waar ik naar moet zoeken, kan iemand me in de richting helpen?

Alvast bedankt!
 
PHP hulp

PHP hulp

23/12/2024 21:27:15
 
Kris Peeters

Kris Peeters

11/12/2012 10:04:11
Quote Anchor link
Toon eens hoe je die berichten nu ophaalt.
Iets met Ajax, I presume. Met jQuery?

O ja; laatste lijn toevoegen bovenaan of onderaan?
Gewijzigd op 11/12/2012 10:35:01 door Kris Peeters
 
Cake Masher

Cake Masher

11/12/2012 19:19:48
Quote Anchor link
De berichten worden inderdaad via Ajax (Jquery .get) opgehaald en op 't moment via 'document.getElementById("id").innerHTML +=' in de tag geplaatst.

De nieuwe berichten worden dus onderaan het element geplaatst. Zodra er een scrollbar tevoorschijn komt, word er ook automatische naar beneden gescrolld om zo de nieuwe berichten te laten zien zonder eerst zelf naar beneden te hoeven scrollen.
Gewijzigd op 12/12/2012 20:05:50 door Cake Masher
 
Cake Masher

Cake Masher

12/12/2012 20:05:56
Quote Anchor link
Heeft iemand een ideetje?
 
Reshad F

Reshad F

12/12/2012 21:34:53
Quote Anchor link
Laat je sql query is zien.
 
Cake Masher

Cake Masher

12/12/2012 21:40:59
Quote Anchor link
Reshad, er word geen database gebruikt. Ik wil het via javascript kunnen regelen.
 
No One

No One

13/12/2012 11:46:28
Quote Anchor link
sql query niet nodig...idee is simpel: gebruik paragraph tags.

Iedere regel zet je dus in <p> of <div> of <span> en dan kun je met $(#divId p:last).remove(); de laatste verwijderen. vervang last door first als je de eerste wilt verwijderen.

een p appenden kun je door $(#divId).html(<p>line</p>); of $(#divId).append($(<p>).html(tekst die je wil printen));

succes
 
Chris PHP

Chris PHP

13/12/2012 11:58:08
Quote Anchor link
Kun je dit niet gewoon veel makkelijker doen met overflow: hidden?

Gewoon een div maken waar precies je 10 regels in passen, en dan die de overflow: hidden meegeven. Dan wordt alle andere tekst gewoon niet weergegeven.

Lijkt me hier de makkelijkste optie, anders moet je met PHP gaan werken en met substr();
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$string
= substr($string,0,10).'...'; // deze limiteert de string tot 10 karakters, en plaatst na de 10 karaters 3 puntjes (...).
?>
 
No One

No One

13/12/2012 12:11:54
Quote Anchor link
@Chris dat is het probleem van de topic starter...dan wordt hij trager omdat er zoveel tekst in de div staat ;)
 
Chris PHP

Chris PHP

13/12/2012 12:16:47
Quote Anchor link
Henze Berkheij op 13/12/2012 12:11:54:
@Chris dat is het probleem van de topic starter...dan wordt hij trager omdat er zoveel tekst in de div staat ;)


Aaah ok, dan gebruikt hij toch gewoon substr() om de string in te korten?
 
No One

No One

13/12/2012 12:21:09
Quote Anchor link
@Chris wat voor nut zou dat hebben?? dan wordt hij misschien wat minder snel traag, maar het probleem blijft...
 
Erwin H

Erwin H

13/12/2012 12:23:10
Quote Anchor link
@Chris
Het gaat niet om de lengte van elke string, maar om het aantal strings. Strings inkorten betekent alleen maar dat je bij elke melding maar de halve melding krijgt...

Eerder gegeven oplossing van Henze lijkt mij de meest logische (met als opmerking dat je een nieuwe melding bovenaan kunt krijgen met prepend() ipv append()).
 
Chris PHP

Chris PHP

13/12/2012 12:47:53
Quote Anchor link
Ok misschien zit ik er naast maar mijn redenering is als volgt.

Nu worden er lappen tekst in div'jes gezet, wat traagheid opleverd en zijn site laat 'haperen'. PHP wordt op de server verwerkt, dus met substr() wordt de lap tekst eerst op de server ingekort, en vervolgens de verkorte versie doorgestuurd naar de browser correct? Dan is zijn 'haper' probleem toch over, aangezien dit puur een browser/client-side probleem is?

Uiteraard zal de oplossing van Henze ook werken, maar wat als nu mensen gebruik maken van bijvoorbeeld JS Blocker of dergelijke tools?
 
No One

No One

13/12/2012 13:26:29
Quote Anchor link
@Chris: de topicstarter wil geen ingekorte stuk tekst. hij wil de volledige melding ontvangen en tonen.

Dat JS Blocker probleem zal wel niet veel helpen daar het een javascript functionaliteit moet zijn. uiteraard kan de topicstarter ook alle 10 laatste regels in de sessie opslaan en die naar de browser toesturen. zonder Javascript ga je in ieder geval niet voor elkaar krijgen wat de topic starter wil...

P.S.: er wordt ajax gebruikt he ;)
Gewijzigd op 13/12/2012 13:27:32 door No One
 
Chris PHP

Chris PHP

13/12/2012 13:33:04
Quote Anchor link
@Henze,

Dan lees ik het anders, dit staat in de TS.
Quote:
Nu wou ik graag zo maken dat ik 10 regels te zien krijg, dus als er al 10 regels staan en er komt een nieuwe regel bij, dan word de laatste regel verwijderd. 10 noem ik even als voorbeeld, kan natuurlijk ook 20, of 100 zijn.


Ik lees hier dat hij gewoon een max aantal regels wil laten zien, en de rest niet (zie laatste regel verwijderd). Wat ik uit zijn tekst haal is dat hij gewoon een verkorte versie wil van zijn teksten. En wellicht met een &_GET of iets dergelijks een link maken naar het volledige bericht.

Vandaar mijn substr() oplossing.
 
No One

No One

13/12/2012 13:39:45
Quote Anchor link
@Chris, toegegeven dat het TS niet erg duidelijk is. toch moet je de eerste regels ook lezen ;)

Quote:
Ik heb op 't moment een pagina waar d.m.v. javascript om de zo veel tijd een bericht neer word gezet vervolgens door een nieuwe lijn (\n). Deze word d.m.v. de <pre> tags netjes weergeven.
 
Chris PHP

Chris PHP

13/12/2012 13:43:46
Quote Anchor link
@Henze,

Ja klopt dat heb ik gelezen, en ik dacht namelijk dat hij gewoon van het volle bericht afwilde ;-) omdat het problemen opleverde met zijn prestaties.
 
Cake Masher

Cake Masher

13/12/2012 21:03:21
Quote Anchor link
Chris, ik heb zeg maar een div waar om de zo veel tijd text in gezet word. Het is niet 't geval dat het gehele text verwijderd word en eropnieuw ingezet word, maar de text word er aan toegevoegd. Ik wil dit persee via js doen omdat PHP er weinig invloed op heeft.

@Henze: Goed idee, ik ga dat even testen.

Bedankt iedreen!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.