Re: [CSS / PHP] Jede zweite Zeile anders, aber aus einer CSS-Datei
Die Lesbarkeit von Code, hat nichts mit seiner Länge zu tun. Davon abgesehen vergisst du, dass ich nicht nur Methoden aufrufe, sondern eine Funktion vorher erstelle. Du kannst dir gerne den Code ansehen, der Hinter den jQuery Methoden steht, die Coca-Cola nutzt. Vermutlich würde man einfach eine Methode schreiben, die das verhalten simuliert, die man wiederverwenden kann. Würde ich meinen Code nutzen, so wie Coca Cola den von jQuery, sähe das dann z. B. so aus:
[src=javascript]custom.cssFallbacks.nthChild(settings);[/src]
Oh mein Gott jetzt ist der Code viel einfacher und besser, weil's nur eine Zeile ist! (Ist natürlich Unsinn)
Der Vorteil von mein Code ist, dass man sofort weiß was er macht und wozu, wenn man den Namen der Methode/Funktion aufruft bzw. ließt. Bei Coca Cola weißt du gar nichts. Du siehst was der Code tut, weißt aber nicht was er erreichen soll, dem entsprechen weißt du auch nicht, ob er tut, was er soll. Dafür braucht man ordentliche Namen. Wenn man solchen Code schreibt weiß man nach einer Woche nicht mehr was Sache ist und das sollte man bei Codebeispielen berücksichtigen. Jemand wird diesen Code nutzen und kopieren. Dazu kommt noch, dass der Code einfach schlecht ist.
Besser:
http://jsfiddle.net/xXz3d/
[src=javascript]
(function ($) {
var markOddEvenTablerowsWithClass = function (tableSelector) {
var tableRows = $(tableSelector).find('tr');
tableRows.each(function (index) {
if (index % 2 === 0) {
$(this).addClass('even');
} else {
$(this).addClass('odd');
}
});
};
$(document).ready(function () {
markOddEvenTablerowsWithClass('#tabelle');
});
}(window.jQuery));
[/src]
* Der neue Code sorgt erst einmal dafür, dass er auf jeden Fall auch eine Referenz zu jQuery auf '$' findet. Davon kann man nicht ausgehen.
* Dann gibt es absolut keinen Grund allen Code an ein Event zu knüpfen, das verlangsamt nur den Aufbau der Seite.
* Aus den zwei viel zu komplexen Querys macht der Code einen einfachen Query (Performance), der dann gefiltert (Performance) und gecacht (Performance) wird .
* Dann kann ich einmal durch alle meine gehen Objekte und nutze den Index um herauszufinden welche Gerade, oder Ungerade sind. Etwas anderes kann jQuery in den Browsern, für die dieser Backfall ist, auch nicht machen. Im Gegensatz zu Coca-Colas Code muss ich das hier aber nur einmal machen und nicht zweimal.
Wenn man einen Backfall für alte, langsame Browser schreibt, ist die Performance schon relevant. Schwer zu lesen ist der neue Code auch nicht (Es sein denn man kann kein Java Script.)
D.h. wenn man viel Javascirpt verwendet. Dann lohnt es sich jquery zu verwenden.
Vielleicht ja, pauschal nein.