アクセスカウンターを作ってみたんですが、重いんでなるべく軽くしようと試行錯誤しているんですが、上手い手を思いつきません。何か良いては無いでしょうか?
ちなみに、各ページごとのカウントをとりたいので、
<img src="****.cgi" width=0 height=0></img>
として埋め込んでます。(もしかしてこれが悪い?)
後で見やすくしかも、簡単にとおもいテキストに日付毎に入れてるんですが、軽くするためにどうしてもやりたいけどやり方が分からないのが二つあります。
1.テキストファイルの上に行を付け足す。
今は中身を一回全部@に入れて”unshift”で最初に付け足して再度書き込むという非常にめんどくさい方法をしてます。
出来れば”seek”か何かで最初だけ読み込み、そこだけ変更するかその上(前?)に付け足方法が分からないんです。
2.もしくはテキストファイルの一番下を読み込む。
上が出来ないとき、一番下を読み込んで書き換えるか追加書き込みで付け足すということをしたいんです。
しかし、徐々に増えていく行の一番下を上手く読み込む方法と、全部を読み込まずに一番下だけ書き換えする方法が分からないんです。
これ以外に軽くするいい方法があるか、上の難問(?)が分かる方、回答ください。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
無理に自分で作成せず実績の有るフリーのCGIを使用する事をお勧めします。
検索エンジンで CGI カウンタ 複数 等で検索するといくつか出てくると思います。
あと、ひとつのログファイルで複数のページのカウンタを取ろうとしているようですが逆に複数のログファイルを作成し、それをひとつのCGIで管理すると言う方法は如何でしょうか!?
counter.cgi?file=site1
counter.cgi?file=site2
といった形です。
如何でしょうか!?試してみる価値はあると思います。
返事が遅れてすいません。
回答ありがとうございます。説明が不明確だったようなので少し補足します。
複数のページのログを一つのログファイルでとろうとはしていません。
(そうすると排他処理の関係もあって、遅くなるだろうし動作が不安定になりそうだから)
ですから、一つのページに一つのログファイルなのですが、そこに過去のログも保存しておきたいと思っています。(一日単位で)
しかし、全部を読み込んで一部を変えるのは出来るのですが、いちいち全部を読み込むのは時間のロスになるので、最新の日付だけを読み込んで、同じ日付だとその日のカウントを1上げる。違う日付だと新しく付け加えるという作業をさせたいのですが、それが上手くいきません。
それを何とかする方法を教えてもらいたいんです。
これでなんとか上手くいったら、書かれているような方法でアクセス集計をしたいと目論んでいるんですが、なにぶんそこまでがなかなか行かなくて(笑)
No.3
- 回答日時:
答えとしてはどうかとは思いますが、、お使いのプロバイダは「CGIに強い」ところでしょうか?
perlのことはぜんっぜん判りませんが、同じスクリプトを設置してもプロバイダによって表示速度は全く違います。
もちろんご存じの上で解決法をお探しのこととは思うのですが、、、
同じスクリプトを数カ所に設置した実験をしたことがあるものとしての体験談でした。自分の使った中ではやはりドルフィンネットでしたが、、
勉強のため皆様のご回答を私も拝見させていただきたく思います。お邪魔いたしました。
参考URL:http://www.din.or.jp
返事が遅れてすいません。
「CGIに強い」というのは、プロバイダ側のサーバーのスペックとか、そこに置かれてるCGI等の数のことによって決まることだと思うんですけど・・・・
(それともサーバーのOSや、ハードの種類やそれ以外?)
とりあえず、まだサーバーの方には上げてません。自分のPCにHTTPDを入れて擬似サーバーにして、そのPC上で動かしてます。
掲示板や自作、他作のCGIを動かしていたんですが、自作カウンターを動かした時、掲示板などより重くて、”何で?たいした処理して無いじゃん!!なんか書き方おかしかった?”
とちょっとパニくってました(笑)
自分で解決法を考えたんですが(質問に書いたこと)、どうやればそれを実行できるか分からなくて質問したんです。
なにか分かったらまた書き込んでください。
No.2
- 回答日時:
私もPerlは初心者なので詳しいスクリプトは解りません。
ご希望に添えるかは分かりませんが、現在のカウント数と過去の
カウント数がわかればよいのであればファイルをカウンタ用の
ファイルと、ログ用のファイルの二つに分けてはどうでしょうか?
つまり
1.アクセスされたときカウンタ用ファイルの日付と現在の日付を比較
2.日付が変わっていたらログ用ファイルの末尾にカウント数を追記
3.カウンタ用ファイルを新しいカウンタ数で置き換える
といった流れです。
今までの処理速度とファイルを余計に開く時間どちらが効率が
良いかは不明ですが・・・
返事が遅れてすいません。なにぶん家のPCではないもので・・・(家のは古くてオブジェとなってる(笑))
結構盲点の内容でした、目からウロコが2・3枚落ちた感じです。
早速試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- その他(パソコン・スマホ・電化製品) ノートに貼られた書類のスキャン方法に関する質問 家族の書類をデータ化して整理しています。 その際にS 3 2023/04/07 13:49
- 文学・小説 小説はどこから書けばいいのでしょうか? 4 2023/04/06 10:49
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- その他(恋愛相談) LINEのブロックについて。 すみませんもう一度書かせてください。 私は20代。未婚。 男は50代で 4 2023/02/18 18:01
- 車検・修理・メンテナンス 自動車車検は、自分で、ユーザー車検で、車検場に持ち込みすると、法定費用だけで、簡単に受かるよ。 7 2023/02/05 22:56
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- JavaScript 読み込んだQRコードをフォームに受け渡したい 1 2023/05/18 11:18
- ドライブ・ストレージ 外付けCDドライブだけ音楽CDが読み込まない 3 2023/08/18 21:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カレンダーを3ヶ月先まで表示...
-
HPで「あなたは何人目です」...
-
アクセスカウンターを付けたい...
-
風俗嬢の心のセンサーは壊れて...
-
設置出来ない…
-
アプリケーションのフリーズを...
-
PowerShellでのエラー出力の読...
-
一番簡単なCGI,掲示板の設置教...
-
スタートアップ(シャットダウン...
-
2ショットチャットルームのお勧...
-
指定サイトからのアクセスのみ...
-
VBスクリプト---アプリの終了に...
-
パソコン用語「ツリー」って、...
-
Visual Basic で掲示板が作れま...
-
デジタルブックを自分のウェブ...
-
パス制の掲示板を探しています。
-
ネットで買った洗濯機は誰が設...
-
5chなどでスクリプト連投などで...
-
PCケースのHDD設置方法につきま...
-
お寺の門前に設置してある掲示...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルのSTEP数について教えて...
-
特定IPアクセスカウンタ
-
アクセスカウンターの作り方
-
自動人数カウンターってありま...
-
HPで「あなたは何人目です」...
-
クリック数を1日ごとにカウン...
-
アクセスカウンタがうまく動作...
-
交通量とかを測る時に使うカチ...
-
カウントを1日毎に0にする方法...
-
カウンタの数字が減る??
-
カウンターについて
-
カウンターについて
-
カウントダウンカウンターって…
-
シーケンス制御のラダープログ...
-
アマゾンAPI(AWS)の利用制限に...
-
カウンター設置
-
Lineのaccessが32回というのは...
-
ホームページにカウンターが付...
-
ページの訪問回数
-
アクセスカウンタの設置
おすすめ情報