5

当社の Web サイト開発チームは、INTRAnet 上の多くの Web サイト (それぞれに異なるバニティ URL を持つ) を管理しています。ページ、URL、クエリ文字列、ユーザー ID などの基本的なものを追跡するデータベースにレコードを挿入する Application.cfm/OnRequestEnd.cfm ページを簡単に追加できる何か (コード スニペット) を実装したいと考えています。レコードの挿入は大したことではありません。私が知りたいのは、パフォーマンスの観点からです。従業員がさまざまなサイトにアクセスするときに挿入のボトルネックがキューに入らないようにするために、皆さんは何をお勧めしますか? すべてのサイトが同じバージョンの jQuery を持っているわけではないため、jQuery を使用することはできません。そのため、Coldfusion を使用するだけに制限されていると思います。

理想的には、メイン サーバーに 1 つのメイン トラッキング ファイルを作成し、他のすべてのサイトからそのファイルを参照できるようにしたいと考えています。その後、更新が必要な場合は、グローバルな変更を行うことができます。Google アナリティクスのように、詳細はそれほど多くありません。

サポートしているすべてのサイトで、それらのページに部門のロゴが表示されています。メールの場合と同じように、画像の読み込みに追跡プロセスを組み込むことを考えました。

あなたがより良い考えを持っているなら、これについての考えは高く評価されます-私はすべて耳にしています。


更新画像処理に関して、easycfm.com からチュートリアルの元のリンクを見つけることができませんでしたが、ここで同じコードのように見えるものを見つけました : http://www.experts-exchange.com/Software/Server_Software/Web_Servers/ ColdFusion/A_2386-Track-your-Emails-using-coldfusion.html

4

2 に答える 2

6

理由があるまで、これを時期尚早に最適化しようとするべきではないと思います。途中で問題が発生した場合は、その時点で対処できます。

Logging CFC を作成し、ログに記録するメトリックを受け取るメソッドを実装し、それをレコードにラップして DB に挿入し、<cfquery>それらを DB テーブルに書き込むために使用します。OnRequestEnd.cfm から関数を呼び出します。

後でロギング方法の実装を変更する必要がある場合は、すべてのサイトを台無しにする代わりに、ロギング メソッドの内部動作を変更するだけでよいため、これを Logging CFC に組み込むことを具体的にお勧めします。

于 2013-03-28T22:53:28.510 に答える
0

Adam Cameron の答えは、おそらくあなたが進むべき道です。その上で、追加のインデックスなしでそれらのレコードをテーブルに挿入することをお勧めします。これにより、挿入が非常に高速になります。次に、スケジュールされたデータベース ジョブを使用して、このデータを分析しやすい適切な正規化されたスキーマに移動できます。

各サイトの JQuery のバージョンが異なるという理由だけで、JavaScript の使用を否定するつもりはありません。JQuery が存在する前に、人々はまだ物事を成し遂げることができました。JQuery は単なる JavaScript ライブラリです。関連するパラメーターを使用して追跡ファイルを指すスクリプト ファイルを動的に含めるのは、非常に基本的な JavaScript です。

<script type="text/javascript">
    var script = document.createElement("script");
    var body = document.getElementsByTagName("body")[0];
    script.setAttribute("src", "http://www.yourdomain.com/trackingfile.cfm?" + yourparams);
    body.appendChild(script);
</script>

ご覧のとおり、JQuery は必要ありません。

于 2013-03-30T09:30:02.480 に答える