Ik heb een script waarbij ik via jQuery een tabel aanmaak waarin ik heel snel een row kan opzoeken tussen 36.000+ andere rows.
Maar het duurt HEEEEL lang voordat het geladen is.
Weet iemand hoe ik dit kan verbeteren?
De query:
<?php
$sql = "
SELECT
ID,
client_id,
name,
contact
FROM
clients
ORDER BY
name, ID
";
?>
De tabel:
<?php
CREATE TABLE IF NOT EXISTS `clients` (
`ID` int(20) NOT NULL,
`client_id` int(20) NOT NULL,
`name` varchar(255) NOT NULL,
`street` varchar(255) NOT NULL,
`postal` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`country` varchar(255) NOT NULL,
`phone` varchar(255) NOT NULL,
`since` varchar(255) NOT NULL,
`changed` varchar(255) NOT NULL,
`contact` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=36085 DEFAULT CHARSET=latin1;
?>
Ik heb ze even bekeken alle 36.000 en probeerde 21.654 te wijzigen maar dat lukt nog niet!
Ik snap niet wat je bedoeld?
Het enige wat ik doe is deze json inladen in een datatable.
Nu kan ik met de zoekfunctie direct de juiste klant opzoeken en daar de gegevens van in een formulier laden.
Nouja, opgelost... dit soort dingen zijn feitelijk natuurlijk "not done", je download nooit een lijst van meer dan 100 regels, laat staaan 36k. Hiervoor is AJAX uitgevonden, zodat je het zoeken aan de serverkant kunt doen, dat is sneller, flexibeler, en het spaart je bakken met traffic.
Klant bij supermarkt tegen medewerker: "is er nog cola light?"
Medewerker loopt weg, komt terug met 3 palletwagens met alle frisdrank bij de klant.
Begint vervolgens te spitten tussen de opgeladen flessen en kratten en komt inderdaad (of niet) met een fles cola light in zijn handen te voorschijn.
En weer verliet een tevreden klant het pand.
Of je loopt even naar het juiste rek en komt terug met de 3 varianten cola light die de winkel in huis heeft...
Kijk anders eens naar lazy-load ofzo.
Ik heb vorige week een plugin geschreven in JS die alleen de eerste 200 records ophaalt.
En meer ophaalt als je naar beneden scrollt. Werkt perfect, en lekker snel.
"Nu kan ik met de zoekfunctie direct de juiste klant opzoeken en daar de gegevens van in een formulier laden."
Om een klant te zoeken, heb je geen 36k aan rows nodig, alleen de resultaten die matchen.
en waarschijnlijk wordt dit nu getest op een server die de database localhost heeft staan, maar tegelijk ook nog eens de client (browser) is, dus er is maar minimaal sprake van het versturen van data over de lijn.
En met maar 1 client die gelijktijdig de data opvraagt, beperk je ook de kans op opstoppingen.
Nadat je browser de filtering gedaan heeft. Beetje jammer voor de gebruikers met een wat trage verbinding (duurt even voor de data er is) en met een wat trage pc, omdat de pc van de bezoeker aan het werk gezet wordt om 90% van de opgehaalde data weer weg te gooien