From: gdkhd812 Date: Wed, 16 Oct 2013 10:24:20 +0000 (+0900) Subject: 大量の過去ログがあると処理が止まってしまう可能性があったので修正した X-Git-Url: http://git.osdn.jp/view?p=webchat%2FWebChat.git;a=commitdiff_plain;h=271ff4555fbdfbda3d68993cfdeafb453b13bcfc 大量の過去ログがあると処理が止まってしまう可能性があったので修正した --- diff --git a/chat.js b/chat.js index 5388d6f..767862e 100644 --- a/chat.js +++ b/chat.js @@ -7,7 +7,6 @@ $system_name = "system"; //システム発言を表す名前 $log_directory = "log"; //ログファイルを置くフォルダー $log_file_name = "logfile%d.txt"; //ログファイル名(%dはそのままにしておくこと) $splited_log_file_name = "logfile%d_%s.txt" //分割後のファイル名(%dと%sはそのままにしておくこと) -$pastlogfile_pattern = "logfile%d(_+.*)?\.txt"; //過去ログと判定する正規表現 var resource = require("./resources.js"); var config = require("./configure.js"); @@ -656,16 +655,7 @@ function GetRoomNumberFromName(name) function ParseGetPastLogList(socket,msg) { var list = fs.readdir($log_directory,function(err,files){ - var text = ""; - var rno = GetRoomNumberFromName(socket.namespace.name); - var pattern = $pastlogfile_pattern.replace("%d",rno); - for(var i = 0; i < files.length; i++) - { - var logname = files[i]; - if(logname.match(pattern)) - text += files[i] + "\n"; - } - socket.emit("req pastloglist",text); + socket.emit("req pastloglist",files); }); } diff --git a/public/scripts/chatclient.js b/public/scripts/chatclient.js index 05ccd2d..1010810 100644 --- a/public/scripts/chatclient.js +++ b/public/scripts/chatclient.js @@ -1,6 +1,7 @@ $expires = 30; //クッキーの保持日数 $afk_time = 1000 * 60 * 60; //AFKと判定する時間(ミリ秒で指定すること) $log_file_name = "logfile%d.txt"; //ログファイル名(%dはそのままにしておくこと) +$pastlogfile_pattern = "logfile%d(_+.*)?\.txt"; //過去ログと判定する正規表現 $system_name = "system"; //システム発言を表す名前(chat.phpと同じにすること) $entered_message = "%sが入室しました"; $quited_message = "%sが退室しました"; @@ -113,15 +114,15 @@ function CreateColorList() } } -function CreatePastLogList(text) +function CreatePastLogList(file) { $("#enter_frame form select[name=past]").empty(); var rno = document.chat_form.rno.value; - var file = text.split("\n"); + var pattern = $pastlogfile_pattern.replace("%d",rno); for(var i = 0; i < file.length; i++) { var logname = file[i]; - if(logname == "") + if(!logname.match(pattern)) continue; var element = document.createElement("option"); element.value = logname;