css, js, jquery
Een paar vraagjes inéén :-)
1. Wat is volgens jullie de beste CSS website waarop alle relevante info duidelijk is terug te vinden?
2. Zelfde vraag voor JavaScript en jQuery.
3. Deze vraag heb ik ooit eens eerder gesteld, maar wellicht zijn de meningen nu anders. Vinden jullie dat je tegenwoordig gewoon het beste overal jQuery voor kan gebruiken? Of heeft (plain) JavaScript de voorkeur? Zelf ben ik niet zo'n JavaScripter. Kleine, simpele dingen kan ik wel, maar bij ingewikkelde zaken wordt het toch lastig. Ik vraag me nu af ... zal ik alles voortaan in jQuery doen, ook de "simpele" dingen? Of is het verstandiger om de simpele dingen in JavaScript te doen en uitsluitend de "moeilijke" dingen in jQuery? Wat vinden jullie? Een beetje van beiden, of gewoon alles in jQuery?
Oh ... en ja, ik snap uiteraard dat jQuery ook gewoon JavaScript is ;-)
2. Voor jQuery (ik probeer eigenlijk altijd jQuery te gebruiken) kijk ik eigenlijk altijd is de documentatie van jQuery. http://api.jquery.com/
3. Wat hier het correcte antwoord op is weet ik eigenlijk niet. Ik probeer altijd jQuery te gebruiken omdat je anders vaak met die ijlen lange functie's zit. De execution time zal niet veel verschillen. Als je jQeury gewend bent zal het de development time wel sterk verminderen.
Klein voorbeeld.
Plain JS:
document.getElementById("input").value; //39 characters
jQuery:
$("#input").val(); //18 characters
zie ook: http://stackoverflow.com/questions/7266067/jquery-over-javascript-why-and-when-to-use
Ikzelf haal heel van het Mozzila Developer Network voor Javascript en CSS.
JQuery heeft zelf een goede en uitgebreide documentatie, alleen zijn sommige dingen soms lastig te vinden via het menu, maar wel via een zoekmachine.
3)
Zoals je zelf al opmerkt, is JQuery een Javascript library. Met andere woorden je kan het prima door elkaar heen gebruiken. Persoonlijk bekijk het per situatie, ik vind het niet nodig om jQuery in te laden op een webpagina die weinig tot geen gebruik maakt van de JQuery functionaliteit.
>> ik vind het niet nodig om jQuery in te laden op een webpagina die weinig tot geen gebruik maakt van de JQuery functionaliteit.
Is het niet zo dat als jQuery eenmaal is ingeladen, dat ie dan in de browsercache zit, en bij volgende aanroepen niet meer hoeft worden ingeladen?
Voor de volledigheid, het komt hoe langer hoe minder voor dat ik jQuery niet gebruik.
Ja, mits je de client caching van JavaScript goed afstelt natuurlijk.
Eigenlijk hetzelfde als met plaatjes.
2 Javascript W3Schools
3 Ik gebruik zelf nooit jQuery.
Oké.
@Ward
Ligt dat aan de browser, of aan mij als developer? Indien dit laatste, hoe regel ik dat?
@SanThe
>> 3 Ik gebruik zelf nooit jQuery.
Wwaarom niet?
Ik vind Javascript makkelijker en overzichtelijker.
Beide, want het is HTTP negotiation. Je server doet een suggestie, daarna is het aan de client om die hetzij op te volgen, hetzij naast zich neer te leggen.
Toen we nog met inbelmodems werkten, kon je bijvoorbeeld véél sneller internetten door je browsercache te tweaken: die liet je dan altijd een eerder geladen plaatje hergebruiken uit de browsercache, tenzij je op F5 drukte om een harde refresh uit te voeren. Af en toe was een gewijzigd plaatje daardoor verminkt, maar dan kon je altijd nog met F5 een nieuwe laden.
Nu is het echter niet veel anders: als je clients afbeeldingen, CSS en JavaScript > 1 jaar laat cachen, worden sites daar merkbaar sneller van. Wijzigingen geef je daarbij door met gewijzigde (nieuwe) bestandsnamen, bijvoorbeeld het versienummer van de minified jQuery-library.
Ook het animeren en selecteren van complexe elementen e.d. ?
Toevoeging op 12/01/2015 14:36:34:
@Ward ... en hoe doe ik dat, dat laten cachen voor 1 jaar?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
ob_start('ob_gzhandler');
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
} else {
$if_modified_since = '';
}
$filemtime = filemtime($_SERVER['SCRIPT_FILENAME']);
$last_modified = gmdate('D, d M Y H:i:s', $filemtime) . ' GMT';
if ($if_modified_since == $last_modified) {
header('HTTP/1.1 304 Not Modified');
exit;
}
header('Cache-Control: public');
header('Content-Type: text/css; charset: UTF-8');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 24 * 365) . ' GMT');
header('Last-Modified: ' . $last_modified);
// ... En hierna de CSS buiten de PHP-tags ...
?>
ob_start('ob_gzhandler');
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
$if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
} else {
$if_modified_since = '';
}
$filemtime = filemtime($_SERVER['SCRIPT_FILENAME']);
$last_modified = gmdate('D, d M Y H:i:s', $filemtime) . ' GMT';
if ($if_modified_since == $last_modified) {
header('HTTP/1.1 304 Not Modified');
exit;
}
header('Cache-Control: public');
header('Content-Type: text/css; charset: UTF-8');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 24 * 365) . ' GMT');
header('Last-Modified: ' . $last_modified);
// ... En hierna de CSS buiten de PHP-tags ...
?>
Dat is even de basisopzet. Een uitgebreidere opzet gebruikt daarvoor dan een aparte klasse die verschillende bestandsformaten ondersteunt en configureerbare cache-regels.
Mozzila Developers Network
> 2. Zelfde vraag voor JavaScript en jQuery.
Zelfde antwoord voor JS
jQuery: api.jquery.com
> Vinden jullie dat je tegenwoordig gewoon het beste overal jQuery voor kan gebruiken? Of heeft (plain) JavaScript de voorkeur? Zelf ben ik niet zo'n JavaScripter. Kleine, simpele dingen kan ik wel, maar bij ingewikkelde zaken wordt het toch lastig. Ik vraag me nu af ... zal ik alles voortaan in jQuery doen, ook de "simpele" dingen? Of is het verstandiger om de simpele dingen in JavaScript te doen en uitsluitend de "moeilijke" dingen in jQuery? Wat vinden jullie? Een beetje van beiden, of gewoon alles in jQuery?
Gebruik pas een library als je het nodig hebt.
Thanks!
@Wouter
Thanks!
>> Gebruik pas een library als je het nodig hebt.
Wanneer heb je het "nodig" is de vraag. Laat je dat afhangen van de complexiteit en ontwikkeltijd van een script? Of ... ? In principe kun je alles wat je met jQuery maakt, ook met JavaScript maken, dus wanneer heb je een library echt "nodig"?
En nog een andere situatie. Stel je website heeft een homepage met een slider die jQuery nodig heeft. En op een andere pagina wil je ook javascript gebruiken voor iets relatiefs simpels. In het laatste geval zou je met plain js kunnen werken, maar met jQuery gaat het ontwikkelen makkelijker. Wat is dan de afweging? Aangezien vrijwel iedereen via je homepage binnenkomt, is jquery dus al geladen. Je hebt in het geval van het simpele script dus niet per definitie een performance verlies. Wat is dan wijsheid?
NOG EEN EXTRA VRAAG:
Is het überhaupt zinvol om te kijken naar andere (kleinere) JavaScript libraries, of is jQuery dusdanig "ingeburgerd" dat je beter gewoon daar voor kunt gaan?
Ozzie PHP op 12/01/2015 15:45:44:
NOG EEN EXTRA VRAAG:
Is het überhaupt zinvol om te kijken naar andere (kleinere) JavaScript libraries, of is jQuery dusdanig "ingeburgerd" dat je beter gewoon daar voor kunt gaan?
Is het überhaupt zinvol om te kijken naar andere (kleinere) JavaScript libraries, of is jQuery dusdanig "ingeburgerd" dat je beter gewoon daar voor kunt gaan?
Dat is natuurlijk totaal afhankelijk van wat je wilt bereiken. Er zijn veel JS librarys. Als het om normaal gebruik gaat dan zou ik zeker voor jQuery zoeken omdat hier veel documentatie over is.
Oké, thanks.
www.css-tricks.com ! Meer dan een documentatie en ook gewoon prettig te lezen!
2): jquery.com en w3schools.com, als dit laatste nodig is
3): alles met jQuery. Geen plain-javascript meer. Ik gebruik de jQuery gewoon van de CDN, dus die is al gecached, ook bij een eerste bezoek.
1): 2): jquery.com en w3schools.com, als dit laatste nodig is
3): alles met jQuery. Geen plain-javascript meer. Ik gebruik de jQuery gewoon van de CDN, dus die is al gecached, ook bij een eerste bezoek.
>> Ik gebruik de jQuery gewoon van de CDN ...
Ben je dan niet bang dat die externe server een keer hangt, of is dat iets waar je niet bang voor hoeft te zijn?
jQuery was, jaren geleden, gemaakt omdat je iets niet "simpel" in JS kon doen. Kijk bijv. naar AJAX, elk browser had wel zijn eigen functienamen en algoritmes voor AJAX. jQuery ving dit allemaal op in 1 simpele functie: jQuery.ajax(). Geweldig! Dat is dus echt iets waar je jQuery eigenlijk wel nodig hebt.
Tegenwoordig is dit allemaal uit jQuery gegooid en, veel belangrijker, hebben bijna alle browsers precies dezelfde APIs. Naar mijn mening wordt het nut van jQuery ook steeds minder. Neem nou bijv de geweldige $() functie om te selecteren, je kunt precies hetzelfde doen met document.querySelectorAll (en dan ook nog voor IE6+ enzo). En als je dat teveel typen vindt, kun je deze enkele regel toevoegen om $ te aliasen naar document.querySelectorAll:
Hetzelfde geld voor heel veel andere jQuery functies. Bijv:
jQuery is dus altijd erg gelimiteerd geweest, zijn enige visie is het simpeler maken van cross-browser JS support, maar helaas is die visie overgenomen door alle websites.
Andere libraries hebben daarintegen nog wel nut. Denk bijv. aan Mootools, behalve het simpeler maken van cross-browser JS support transformeert die JS ook naar een Object gerichte taal. Daarnaast zijn er nog heel veel "frameworks", zoals AngularJS, BackboneJS, FlightJS en honderden anderen. Deze brengen JS naar een compleet nieuw niveau.
Wouter J op 13/01/2015 02:11:47:
jQuery was, jaren geleden, gemaakt omdat je iets niet "simpel" in JS kon doen. Kijk bijv. naar AJAX, elk browser had wel zijn eigen functienamen en algoritmes voor AJAX. jQuery ving dit allemaal op in 1 simpele functie: jQuery.ajax(). Geweldig! Dat is dus echt iets waar je jQuery eigenlijk wel nodig hebt.
Dat is inderdaad nog steeds zo. Vorig jaar heb ik 2 dagen zitten zweten op een compatibiliteitsprobleem in een Ajax-script. In jQuery bleek die te zijn opgelost. Had ik meteen jQuery gebruikt, dan had ik 2 dagen iets anders kunnen doen.
Het lijkt me desalniettemin vooral een keuze, net zoals kiezen (of niet kiezen) voor een bepaald HTML-framework en een PHP-framework.
Dit snap ik even niet. Ondersteunt jQuery nu geen AJAX meer, of begrijp ik je verkeerd?