Ola,

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 ;-)
Voor CSS gebruik ik bijvoorbeeld een rewrite rule die een request om foo.css herschrijft naar css.php. In die css.php gebruik ik vervolgens een controle van de laatste wijziging van het CSS-bestand:


<?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 ...
?>

Dat is even de basisopzet. Een uitgebreidere opzet gebruikt daarvoor dan een aparte klasse die verschillende bestandsformaten ondersteunt en configureerbare cache-regels.
> 1. Wat is volgens jullie de beste CSS website waarop alle relevante info duidelijk is terug te vinden?

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.
@Ward

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?


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.
1): 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.
Thanks voor de aanvulling Eddy!

>> 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?
> 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"?

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:
[code lang=js]var $ = document.querySelectorAll.bind(document);[/code]

Hetzelfde geld voor heel veel andere jQuery functies. Bijv:
[code lang=js]EventTarget.prototype.on = EventTarget.prototype.addEventListener[/code]
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.

>> Tegenwoordig is dit allemaal uit jQuery gegooid en, veel belangrijker, hebben bijna alle browsers precies dezelfde APIs.

Dit snap ik even niet. Ondersteunt jQuery nu geen AJAX meer, of begrijp ik je verkeerd?

Reageren