Wissensressourcen

Wir möchten einige unserer Erfahrungen in der Hoffnung, dass andere Entwickler gewohnt haben, um Stunden auf den gleichen Schlachten, die wir schon geführt und gewonnen verschwenden zu teilen.

Lack-Caching im Speicher

Wir haben mit Firnis experimentiert für die letzte Woche oder so und sind sehr zufrieden mit den Ergebnissen zufrieden. Ursprünglich hatten wir zugeteilt 1GB für Cache-Speicher, haben aber festgestellt, dass sich als nicht ausreichend. Unser / var / lib / Lacke / varnish_storage.bin Datei hatte die Grenze erreicht und Lacke begann Entfernen von Elementen aus dem Cache auf die "Least-recently used" LRU-Algorithmus basiert. Es war gerade erst dann merkten wir, dass es wahrscheinlich einen besseren Weg. Nach ein wenig googeln, entdeckten wir die malloc Option für Lack.

Stoppen Sie Varnish Caching timed-out-Seiten

Wir haben mit einem Kunden, der eine sehr überlastet läuft gearbeitet ColdFusion Web-Server und die Einrichtung wurden Lack-Cache auf Amazon AWS , einen Teil der Last zu lindern und eine deutliche Steigerung Seite Antwort-und Ladezeiten.

MySQL Gebäude Schnittstelle zu Memcache

Mario Beck Schreibt:

Warum nicht direkt memcached?

Warum das Plugin zu MySQL? Memcache ist ein Speicher-Caching, nicht aber eine hartnäckige Datenspeicher. Der memcached Plugin für MySQL speichert die Daten in eine InnoDB-Tabelle. So erhalten Sie Persistenz, nahezu unbegrenzte Tischgröße und immer noch können Sie Ihre Daten über SQL zugreifen, wenn Sie komplexere Sachen wie COUNT (*) wollen, wo pkey LIKE = "Seite:%"; Dies wäre nicht in memcached möglich. Aber mit dem memcached Plugin können Sie Daten mit memcached SET Bericht und speichern Ihre Daten mit SQL-Abfragen.

Dieses Feature ist in der MySQL Labs Release.

Mongo Spitze: Deaktivieren Sie Tabellen-Scans für die Entwicklung

Genau wie in jeder relationalen Datenbank sind Tabellen-Scans in Mongo sehr langsam. In der mongod.conf Konfigurationsdatei können Sie Tabellen-Scans mit deaktivieren:

notablescan = true

Nun, wenn Sie eine Abfrage, die ein Tabellen-Scan erforderlich machen würde versuchen, wird eine Ausnahme von Mongo geworfen zu werden und ging zurück über Ihren Fahrer. Am besten ist es, dies auf Anfang drehen während des Entwicklungsprozesses, da es auch helfen kann hervorzuheben schlecht geschriebene Abfragen.

Beachten Sie, zum Beispiel, dass eine Abfrage wie:

Mongo Spitze: Vermeiden Sie unter allen Umständen dBref

Wir verwenden Morphium für das Leben einfach, wenn persistierende Java-Objekte zu einer MongoDB Datenspeicher. Diese Bibliothek macht die meiste Arbeit von Rangier-Objekte und die Vorbereitung Abfragen. Leider bei Verweisen (anstatt Einbettung) Objekte mit der Annotation @ Reference, mit Morphia Mongo dBref Mechanismus zum Speichern der ID. Die dBref ist eine Verbindung, Schlüssel zu einem Mongo Kollektion und die ID des Objekts innerhalb dieser Sammlung.

Erfrischende Hash Teil der URL, um den Bildlauf auslösen

Für die Admin-Seiten des " einheitlichen Datenbank "wir aufgebaut haben, Ich schrieb vor kurzem einen einfachen Sprung Link-Generator mit Hilfe von JavaScript / jQuery. Er sieht sich also alle <h2> Überschriften auf der Seite, fügt einen Anker-Link innerhalb und fügt einen entsprechenden Link zu einem Sprung Navigation Box in der Seite im Menü.

jQuery-AJAX-Rückruf nicht aufgerufen wird?

Beim Austausch Anrufe zu einigen Legacy-ajax Hilfefunktionen, kurzem stieß ich auf ein Problem, es dauerte eine Weile für mich zu lösen. Nach Firebug (eine sehr nützliche Firefox-Plugin, falls Sie es nicht wissen)Wurde der Ajax-Aufruf gemacht und die Antwort sah völlig in Ordnung, aber meine Callback-Funktion wurde nie aufgerufen. Am Ende, zum Testen, ich hatte ein einfaches Snippet wie dieses:

$.get('/some/url', function(){ alert('called'); });

Übergeben von benutzerdefinierten Argumente zu jQuery ajax Callback-Funktionen

Beim Ausstieg aus unserer alten Sammlung von Ajax-Hilfefunktionen, rannte ich in ein Problem mit dem Übertragen von benutzerdefinierten Argumente an die Callback-Funktion des Ajax-Request. Unser alter AJAX-Funktionen wurden auf eval () 'ing basieren und könnte eigene Argumente als eine Zeichenkette, die zusammen mit den Namen der Funktion verwendet wurde, um den Anruf der Callback konstruieren akzeptieren. Bei der Verwendung von jQuery, ist die Situation anders, da jQuery bietet die Callback-Funktion mit einem festen Satz von Argumenten:

$.get('/some/url', function(data, textStatus, XMLHttpRequest) {
	//do something
});

Cfquery Ergebnis structs

In alten Coldfusion 6, könnten Sie Zugriff auf die Anzahl der Zeilen für eine SELECT-Abfrage, indem Sie queryName.recordcount zurück.

In CF8, cfquery hat jetzt eine Ergebnis-Attribut, das für die Benennung eines struct enthält zusätzliche Informationen über die Abfrage ausgeführt wird, verwendet. So, jetzt für die Abfrage:

<cfquery name="a" result="aRes" datasource="uid">
...
</cfquery>

Sie können beide a.recordcount und aRes.recordcount, aber nur Letzteres funktioniert für die Aktualisierung oder Löschen von Abfragen!

Die Verbesserung der User Experience im Google übersetzt Modus

Kürzlich haben wir ein einfaches übersetzen Menü zu einem Kunden-Website , die die Website an Google in ein paar verschiedene Sprachen übersetzt werden angeboten. Da gibt es keinen einfachen Weg, um loszuwerden, der übersetzt das Frame-Layout-Modus und gehen Sie zurück zu der ursprünglichen Sprache ohne oberen Leiste Googles wollte der Kunde uns die Übersetzung in einem neuen Fenster geöffnet. Dies wurde leicht durch Zugabe erreicht target="_blank" auf die Form verantwortlich für die Einleitung der Übersetzung.

Seiten

Knowledge resources abonnieren