Performance durch statischen Seitencache

von Moritur am 12. January 2015

Ich habe vor kurzem einen sehr interessanten Artikel gelesen: Stop Writing Stateful HTML.

Dieser Artikel hat mich so überzeugt, dass ich das Konzept auf unserer neusten Seite MeinHilfsmittel.de umgesetzt habe. Mit großem Erfolg!

Die Idee ist, bei jeder Seite (wo das sinnvoll möglich ist) jegliche Informationen die Nutzerspezifisch ist zu entfernen und diese anschließend per ajax nachzuladen.
Im konkreten Beispiel sind alle Seiten initial (bis auf den checkout) ohne Benutzerinformationen. Die Login Leiste mit Warenkorbinformation wird dann per ajax nachgeladen. Man könnte sicherlich auch eine Variante mit Hilfe von local storage / cookies implementieren. Die Seiten werden dann in unserem gulp build erzeugt und als html im Dateisystem abgelegt. Per nginx werden diese Seiten dann ausgeliefert, anstatt einen PHP Prozess zu befragen.

Die nginx Konfiguration kann dann z.B. so aussehen:

Die Performance ist dadurch extrem gut. Die initale Ladezeit beträgt nur noch ca. 30ms anstatt ca. 250ms.
Dadurch erreichen wir einen Speed Index von 900 im ersten Aufruf und 200(!) im zweiten Aufruf.
Außerdem werden natürlich Ressourcen gespart, da kein PHP Prozess mehr für diese Seiten nötig ist.

Mymineralmix – Nginx Performance

von Moritur am 10. June 2013

Ich habe vor kurzem eine meiner größeren Seiten mymineralmix.de auf Nginx umgestellt.
Es handelt sich dabei um einen online Shop auf dem man einen Fragebogen ausfüllen muss. Da es doch recht viele Fragen und somit Unterseiten gibt, war die Performance ein wichtiges Thema.

Ich frage mich immer, wieso nicht viel mehr Leute Nginx ausprobieren. Die Einrichtung ist wirklich unglaublich einfach. Außerdem ist es cool endlich von all dem Regex in der .htaccess wegzukommen und endlich ein bisschen programmieren zu können.
Fazit nach der Umstellung also: Daumen hoch, ich wüsste keinen Grund mehr hier Apache einzusetzen.
Das einzige Problem könnten eventuell fehlende Module sein, aber da vermisse ich noch nichts.

Wie sind eure Erfahrungen mit Nginx vs. Apache?

Debian: unable to qualify my own domain name

von Moritur am 22. January 2013

Bei mir kam es unter Debian 60 squeeze zu folgender Fehlermeldung wenn ich versucht habe emails mit phps mail() Funktion oder auch sendmail zu verschicken:

sendmail[21812]: My unqualified host name (Debian-60-squeeze-64-minimal) unknown; sleeping for retry
sendmail[21812]: unable to qualify my own domain name (Debian-60-squeeze-64-minimal) -- using short name

Die Lösung des Rätsels war einfacher als gedacht:

1. nano /etc/hosts
2. dort steht ein Eintrag ip.ip.ip.ip Debian-60-squeeze-64-minimal (ip.ip.ip.ip ist natürlich die IP Adresse deines Servers)
3. Diesen Eintrag ändern in: ip.ip.ip.ip Debian-60-squeeze-64-minimal Debian-60-squeeze-64-minimal. (Den hostname noch einmal dahinter und ein Punkt “.”)
4. sendmail neu starten: /etc/init.d/sendmail restart
5. Freuen :)

Lemonstand + nginx #2

von Moritur am 19. November 2012

Die Nginx Konfiguration, die man so für Lemonstand im Netz findet ist leider unvollständig.

Hier meine verbesserte Version:

Lemonstand deutsche localization

von Moritur am 14. September 2012

Hier meine deutschen Übersetzungen für Lemonstands Phproad zum Download:

Zum Download der Übersetzungen

Viel Spaß damit :)

Lemonstand + nginx: Error connecting to the database

von Moritur am 11. August 2012

Wer Lemonstand mit nginx betreibt wird das vielleicht kennen. Hin und wieder – ich würde sagen so ca. 2 mal täglich – taucht auf einmal “Error connecting to the database” auf, wenn man seinen Shop aufrufen möchte.
Die Lösung ist einfach, aber nicht offensichtlich:
Lese den ganzen Artikel »

Separator line with text

von Moritur am 25. July 2012

There are many snippets for separator lines out there but I didn’t find a single one with a text in the middle. Here you got one:

[crayon lang=”css”]
.separator {
width: 100%;
border-bottom: 1px solid #60636a;
text-align: center;
height: 18px;
margin-bottom: 15px;
}
.separator span {
line-height: 15px;
padding: 0 10px;
background: white; /* Color of the element below */
display: inline-block;
margin-top: 10px;
color: #60636a;
}
[/crayon]

This is the neccessary html:

[crayon lang=”html”]

or

[/crayon]

That’s how I needed the separator line:

Create a new account

or

Order as guest

Do you know a better method to do this? Maybe without a fixed background color?

Collection #1

von Moritur am 18. June 2012

Artikel

Onlineshop Kogan.com erhebt Steuer für IE7 Benutzer
http://www.kogan.com/au/blog/new-internet-explorer-7-tax/

Your Website works. Now let’s make it work faster!
http://coding.smashingmagazine.com/2012/06/12/javascript-profiling-chrome-developer-tools/

Grafiken / Webseiten


Lese den ganzen Artikel »

Whoo! CSS3 only arc (circular progress)

von Moritur am 28. March 2012

I always loved these arcs to display progress, but the only way to create them is using JavaScript and a canvas or simply images.
But with the new awesome CSS3 techniques it is finally possible to create them with pure CSS.

So this is how a pure CSS3 arc looks like (try a hover)

o
o
35%

This works best in Chrome, but also in Firefox and Opera
IE is not supported – Who would have thought?


Chrome has this great feature to use gradients as a mask. Thats how the inset around the circle is created (FF and Opera only show a white border)

Of course I will try to explain how it’s done.

Lese den ganzen Artikel »

Google Maps and Array.prototype.indexOf

von Moritur am 16. January 2012

Google Maps together with an own implementation of Array.prototype.indexOf (IE<9 needs it) may result in some problems. The solution is a short: [crayon lang=”js”] delete Array.prototype.indexOf; [/crayon] After including Google Maps, Array.prototype.indexOf can be defined again.