10 regels in een div laten zien.
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!
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
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
Heeft iemand een ideetje?
Laat je sql query is zien.
Reshad, er word geen database gebruikt. Ik wil het via javascript kunnen regelen.
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
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)
1
2
3
2
3
<?php
$string = substr($string,0,10).'...'; // deze limiteert de string tot 10 karakters, en plaatst na de 10 karaters 3 puntjes (...).
?>
$string = substr($string,0,10).'...'; // deze limiteert de string tot 10 karakters, en plaatst na de 10 karaters 3 puntjes (...).
?>
@Chris dat is het probleem van de topic starter...dan wordt hij trager omdat er zoveel tekst in de div staat ;)
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?
@Chris wat voor nut zou dat hebben?? dan wordt hij misschien wat minder snel traag, maar het probleem blijft...
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()).
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?
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
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.
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.
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.
@Henze: Goed idee, ik ga dat even testen.
Bedankt iedreen!