知識資源

我々は、他の開発者は、我々はすでに戦って勝ったのと同じ戦いに時間を無駄にする必要が文句を言わないことを期待して我々の経験の一部を共有したい。

メモリ内のワニスキャッシング

我々は最後の一週間かそこらのためにニスを試してきたし、結果に非常に満足しています。最初に我々は、キャッシュ·ストレージ用の1GBを割り当てられますが、不十分であることを発見した。私たちは/ var / lib /ワニス/ varnish_storage.binファイルが制限に達したとVarnishは、その "最も最近使用された" LRUアルゴリズムに基づいてキャッシュから項目を削除しました。それはちょうど、我々がより良い方法は、おそらくそこに気づいただけだった。ビットをグーグルした後、我々はニスのmallocオプションを発見しました。

ページがタイムアウトしたキャッシングニスを停止します。

我々は非常にオーバーロードされ実行されるクライアントで作業してきたColdFusionWebサーバに接続して、設定されているニスキャッシュAmazonAWS負荷の一部を軽減し、大幅なページ·レスポンスとロード時間を増加させる。

MemcacheのにMySQLの建物のインタフェース

マリオベック書き込み:

なぜ直接memcachedを使用していない?

なぜMySQLのへのプラグイン? memcacheのはメモリキャッシュではなく永続的なストアです。. MySQLのmemcachedののプラグインは、InnoDBはテーブルにデータを格納. だから、永続性、ほぼ無限のテーブルのサイズを取得し、まだあなたが= "ページ(*)WHERE PKEY COUNT LIKEのような複雑なものにしたい場合は、SQLを介してデータにアクセスすることができます:%"; これは、memcachedのは可能ではありません。 しかし、memcachedのプラグインでは、SQLクエリを使用してデータをmemcachedSETと、レポートでデータを格納することができます.

この機能は、で利用できるMySQLのラボリリース。

Mongoのヒント: 開発のためのテーブル·スキャンを無効にする

ただ、任意のリレーショナルデータベースのように、モンゴのテーブルスキャンが非常に遅いです。でmongod.confコンフィギュレーションファイルには、使用してテーブルスキャンを無効にすることができます。

notablescan = true

今、あなたはテーブルスキャンを必要とするクエリを作成しようとすると、例外がMongoのによってスローされ、あなたのドライバを介して戻って渡されます。それはまた、下手に書かれたクエリを強調することができますので、それは開発プロセスの早い段階でこれを有効にすることをお勧めします。

そのクエリのような例に関する注意事項:

Mongoのヒント: すべてのコストでDBREFを避ける

我々は使用モルヒネを MongoDBのデータストアにJavaオブジェクトを永続化するときに人生は簡単に作るために. このライブラリは、ほとんどのオブジェクトをマーシャリングするとクエリの準備の作業を行います。 残念なことにモルヒネを使用して、(というより、埋め込 み)@ referenceアノテーションを使用してオブジェクトを参照するときMongoDBREF IDを格納するための機構を. DBREFMongoのコレクションには、複合キーと、そのコレクション内のオブジェクトのIDです。.

スクロールをトリガするためのURLのハッシュ部分をリフレッシュする

"の管理ページ用に統一されたデータベース我々が構築した、 "私は、最近のJavaScript / jQueryを使用して、単純なジャンプのリンクジェネレータを書いている。それは基本的にアンカーリンクの内側には、挿入、ページ上のすべての<H2>の見出しを検索し、サイドメニューのナビゲーションボックスに対応するのジャンプリンクが追加されます。

jQueryAjaxのコールバックが呼び出されていませんか?

いくつかのレガシーAJAXのヘルプ関数の呼び出しを交換するとき、私は最近私が解決するのはしばらく時間がかかった問題に出会いました。 による 放火魔 (非常に便利なFirefoxのプラグインは、ケースにあなたはそれについて知らない)、AJAX呼び出しが行われ、応答が完全に正常に見えたが、私のコールバック関数が呼び出されなかったれました. 最後に、テストのために、私はこのような単純なスニペットを持っていた:

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

jQueryAjaxのコールバック関数にカスタム引数を渡す

Ajaxのヘルプ機能の我々の古いコレクションを段階的に廃止したとき、私は、Ajaxリクエストのコールバック関数にカスタム引数を渡すと問題が発生しました。私たちの古いAJAX機能は 'eval()をるに基づいていたし、コールバックの呼び出しを構築するために、関数名と一緒に使用された文字列リテラルとしてカスタム引数を受け入れることができる。 jQueryは、引数の固定セットを持つコールバック関数を提供していますので、jQueryを使用している場合、状況は異なります。

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

cfqueryの結果の構造体

古いColdFusion 6では、queryName.recordcountを行くことによって選択クエリに対して返される行の数をアクセスすることができます.

CF8では、cfqueryタグは実行されたクエリについての追加情報を含む構造体を命名するために使用される結果の属性があります。 だから今のクエリのための:

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

あなたがa.recordcountaRes.recordcountが、更新のための唯一の後者の作品の両方を行うまたはクエリを削除することができます!

Googleの翻訳モードでユーザーエクスペリエンスを向上させる

我々は最近に簡単な翻訳メニューを追加し、クライアントのウェブサイト 、Googleはいくつかの異なる言語に翻訳するウェブサイトを提供し、. 翻訳モードのフレームレイアウトを取り除くと、Googleのトップバーを表示せずに元の言語に戻って簡単な方法はありませんので、クライアントは、私たちは新しいウィンドウで翻訳を開きたい. これは簡単に追加することによって達成されました target="_blank" 翻訳を起動するための責任を負う形に.

ページ

Knowledge resources を購読する