Les ressources d'information

Nous aimons partager certaines de nos expériences dans l'espoir que d'autres développeurs n'aurez pas à perdre des heures sur les mêmes batailles que nous avons déjà combattu et gagné.

La mise en cache en mémoire Vernis

Nous avons fait des expériences avec vernis pour la dernière semaine ou deux et ont été très satisfaits avec les résultats. Initialement, nous avons alloué 1 Go pour le stockage du cache, mais j'ai trouvé que, pour être insuffisante. Notre répertoire / var / lib / vernis / varnish_storage.bin dossier avait atteint la limite et vernis a commencé à enlever les éléments de la mémoire cache en fonction de son «moins récemment utilisé" algorithme LRU. Il était juste, puis nous avons réalisé qu'il y avait probablement une meilleure façon. Après googler un peu, nous avons découvert la possibilité de malloc pour vernis.

Arrêtez vernis cache timed-out pages

Nous avons travaillé avec un client qui exécute un très surchargé ColdFusion serveur Web et qui ont été mise en place de cache Varnish sur Amazon AWS à atténuer quelque peu la charge et d'augmenter considérablement la réponse page et les temps de chargement.

Interface de création de MySQL à la fonction Memcache

Mario Beck Écrit:

Pourquoi ne pas utiliser memcached directement?

Pourquoi ce plugin pour MySQL? Memcache est un cache en mémoire, mais pas une banque de données persistantes. Le plugin memcached pour MySQL stocke les données dans une table InnoDB. Ainsi, vous obtenez la persistance, taille de la table presque illimitée et vous pouvez encore accéder à vos données via SQL si vous voulez des trucs plus complexes comme COUNT (*) OU COMME pkey = "Page:%"; Ce ne serait pas possible dans memcached. Mais avec le plugin memcached vous pouvez stocker des données avec la commande SET memcached et rapport sur vos données avec des requêtes SQL.

Cette fonctionnalité est disponible dans le Labs MySQL version.

Mongo pointe: Désactiver les analyses de table pour le développement

Juste comme dans n'importe quelle base de données relationnelle, les analyses de table à Mongo sont très lents. Dans le mongod.conf fichier de configuration, vous pouvez désactiver les analyses de table avec:

notablescan = true

Maintenant, quand vous essayez de faire une requête qui nécessiterait une analyse de table, une exception sera levée par Mongo et renvoyée via votre pilote. Il est préférable de désactiver cette sur au début du processus de développement car il peut aussi aider à mettre en évidence mal demandes écrites.

Notez par exemple que la requête comme:

Mongo pointe: Évitez à tout prix dBref

Nous utilisons la morphine pour rendre la vie facile lors de la persistance des objets Java à une banque de données MongoDB. Cette bibliothèque fait la plupart des requêtes de l'œuvre d'objets de triage et la préparation. Malheureusement lors du référencement (plutôt que d 'encastrement) des objets en utilisant l'annotation @ Reference, la morphine à l'aide dBref Mongo mécanisme pour stocker l'ID. Le dBref est une clé composée d'une collection de Mongo et l'ID de l'objet à l'intérieur que la collecte.

Rafraîchissant partie de hachage de l'URL pour déclencher le défilement

Pour les pages d'administration de la " base de données unifiée "nous avons construit, j'ai récemment écrit un générateur simple saut lien en utilisant javascript / jQuery. Il semble en fait toutes rubriques <h2> sur la page, insère un lien vers une ancre à l'intérieur et ajoute un lien saut correspondant à une zone de navigation dans le menu latéral.

jQuery rappel ajax n'est pas appelé?

Lors du remplacement des appels à certaines fonctions existantes d'aide ajax, je suis récemment tombé sur un problème, il a fallu du temps pour moi de résoudre. Selon Pyromane (un plugin très utile FireFox, au cas où vous ne savez pas ce sujet), L'appel Ajax a été faite et la réponse semblait parfaitement bien, mais ma fonction de rappel n'a jamais été invoquée. En fin de compte, pour les essais, j'ai eu un extrait de simple comme ça:

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

Passage d'arguments personnalisés pour jQuery fonctions de rappel ajax

Lorsque la suppression progressive de notre vieille collection de fonctions d'aide ajax, je suis tombé sur un problème avec le passage d'arguments personnalisés à la fonction de rappel de la demande ajax. Nos anciennes fonctions ajax étaient basées sur eval () 'ING et pourrait accepter des arguments personnalisés comme une chaîne littérale qui a été utilisé conjointement avec le nom de la fonction de construire l'appel de la fonction de rappel. Lorsque vous utilisez jQuery, la situation est différente, puisque jQuery fournit la fonction de rappel avec un ensemble fixe d'arguments:

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

Structs résultat CFQUERY

Dans l'ancienne Coldfusion 6, vous pouvez accéder au nombre de lignes retournées pour une requête de sélection en allant queryName.recordcount.

En CF8, cfquery a maintenant un attribut résultat, qui est utilisé pour nommer une structure contenant des informations supplémentaires au sujet de la requête exécutée. Alors maintenant, pour la requête:

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

Vous pouvez faire les deux a.recordcount et aRes.recordcount, mais seuls les derniers travaux de mise à jour ou supprimer des requêtes!

Améliorer l'expérience utilisateur dans Google traduit le mode

Nous avons récemment ajouté un menu simple traduire à un site web du client , qui a offert le site Web pour être google traduit en quelques langues différentes. Comme il n'y a pas de moyen facile de se débarrasser de décodage du mode traduits et revenir à la langue d'origine, sans barre supérieure de Google, le client a voulu nous ouvrir la traduction dans une nouvelle fenêtre. Ceci a été facilement obtenue en ajoutant target="_blank" à la forme d'impulsion de la traduction.

Pages

Souscrire à Knowledge resources