read.cgi 2006―JavaScriptはCGIの夢を見るか
1 :
reffi@報告人 ★ :
2006/07/25(火) 18:21:10 ID:???0 BE:435698257-BRZ
じょじょっびじょばーじょびじゃば作戦始動
3 :
動け動けウゴウゴ2ちゃんねる :2006/07/25(火) 18:33:38 ID:lpPV/JnB0
後の猪木である
すごいNE
えらー?
6 :
動け動けウゴウゴ2ちゃんねる :2006/07/25(火) 18:41:47 ID:6Zw5Wp6cO
セキュリティー上、ファイル書き込み不可な仕様だから無理 phpで殺れ
ルトガー・ハウアーは出てきませんね、おじゃましましたー
9 :
stream ◆PNstream2s :2006/07/25(火) 18:53:16 ID:KZ+jrYir0
datファイルを取得というと勘違いされがちなんだけど、決してこれは2chブラウザの代替ではない。 read.cgiの代替(改良)である。
夢ってもんはみるもんじゃないぜ
叶える物さ
javascript版もdat読み行ってるだけだからなんも問題ないんじゃないの?
へーおもすれー
携帯のフルブラウザとかはどーなる?
>>15 JavaScriptが使えれば何の問題もない。
・・・DSブラウザからだとちゃんと動くんだろうか?
へー すごいな
今のところの問題点 ・文字化けや表示できないブラウザ等がある 表示できないブラウザは従来方式に切り替えれば対応可能 ・表示速度がマシンによって遅くなる 重い部分をクライアントではなく鯖側に持って行けば解決可能? こんなところかな?
>>19 「重い部分」というのは主に整形処理であって、それはread.cgiが行う処理の
大半でもあるという罠
21 :
御法川将貴 :2006/07/25(火) 23:17:23 ID:QXaGIOsz0
斎藤優貴は価値も薄れた人間だな
>>19 究極的にはAASみたいに画像表示にすればフォントの問題も解決しそうだけど
無理か
AASって素人目には負荷すごそうなんだけど どうにかならんのか?
24 :
root▲ ★ :2006/07/26(水) 00:25:34 ID:???0 BE:6567089-BRZ
さて、.htaccess 的にはどうすればいいのかしら。 < dso に入れる場合
<Files read.cgi> AcceptPathInfo On ForceType text/html SetHandler default-handler </Files> <Files *.dat> Header append Cache-Control max-age=5 AddDefaultCharset Shift_JIS ForceType text/plain ←2chの今の設定によっては不要 </Files> どうあがいてもIE6だと文字化けする、が俺の見解。
今の状態でdatファイルは text/plain になってるから ForceType text/plain は要らないですかね text/○○ じゃないと AddDefaultCharset Shift_JIS が反映されないんで
27 :
root▲ ★ :2006/07/26(水) 00:31:06 ID:???0 BE:3648858-BRZ
まぁ,JavaScript の文字列処理は Unicode 前提ってことなんでしょうねぇ......
30 :
root▲ ★ :2006/07/26(水) 00:35:39 ID:???0 BE:3192757-BRZ
304 Not Modified が返ってきた時点で文字化けするんで、
これをやれば文字化けしないんでしょうけど(試してません)。
http://qb5.2ch.net/test/read.cgi/operate/1153615149/904 904 動け動けウゴウゴ2ちゃんねる [sage] 2006/07/25(火) 17:30:30 ID:5p+KTVNq0
dat適当に取得するスクリプト書いて、IEで軽く試してみた。
xmlhttp.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT")
を、追加したらいつでも最新を読み直すようになったよ。
アレだけどw
32 :
root▲ ★ :2006/07/26(水) 00:37:40 ID:???0 BE:2189546-BRZ
>>29 うーむ。
センス悪い方法としては mod_filter + mod_proxy あたりを使うんですかね。
/板名/dat/*.dat は生だが、
/板名/dat_uta8/*.dat を読むと、上記を mod_filter が UTF-8 にコンバートしてから、
クライアントに渡すとか。
33 :
root▲ ★ :2006/07/26(水) 00:38:59 ID:???0 BE:3283294-BRZ
センス悪いというか、そんなに悪くないのかな。 ちょっとコスト上がりますが、少なくとも read.cgi で表示するための 整形処理するよりは、負荷低いはずだし。 で、mod_cache とかが*うまく*動けば、一個コード変換したものは キャッシュされるようにできるかもしれないし。
34 :
root▲ ★ :2006/07/26(水) 00:40:21 ID:???0 BE:912252-BRZ
で、JavaScript 化で得られるメリットを考えたら、 コード変換のコストは、reasonable だと思ですね。 結局、単なる決められた数値演算に過ぎないし。
>>16 Opera8で動くから、
Opera8ベースを使ってるDSブラウザなら余裕だと思う
37 :
ひろゆき@どうやら管理人 ★ :2006/07/26(水) 01:59:33 ID:???0 BE:252858-BRZ
はや!
38 :
root▲ ★ :2006/07/26(水) 02:00:52 ID:???0 BE:4925669-BRZ
responseTextじゃなくて、responseBodyなら、 クライアント側で変換できるけど。遅いよ
実用的ではない まず重い、ありえない そもそもJavaなんか切ってる人が大半 ───終了───
41 :
ひろゆき@どうやら管理人 ★ :2006/07/26(水) 02:06:42 ID:???0 BE:114629-BRZ
>>38 1年間に飛行機に乗る人のうち、マイレージプログラムに執着するのは
何割なんでしょう。
少数の高額利用者の食い合いをしてる業界であればわかるのですが、
無料で利用できる掲示板にそのまま適用できるとは思えなかったりします。
42 :
root▲ ★ :2006/07/26(水) 02:11:17 ID:???0 BE:1368735-BRZ
>>41 > 1年間に飛行機に乗る人のうち、マイレージプログラムに執着するのは
> 何割なんでしょう。
AMC (ANAマイレージクラブ)の会員は、およそ1000万人と言われています。
乱暴に言えばまぁ大体、飛行機に乗る日本人の数と、当たらずとも遠からずかと。
で、PLT 以上なのは、つまりマイレージプログラムに執着しているとみなせる人は、
そのうちのおよそ 1% 程度といわれています。
つまり、だいたい私と同じか、あるいはそれ以上のレベルの廃人は、
全国に10万人ぐらいは、いることになるです。
これを多いと考えるか少ないと考えるかで、
このようにエンブレムを載せる意味が、
あるのかないのかにつながっていくんではないかと。
で、私は「これは無料だからこそより適用できるのだ、掲示板には愛が大事なのだ」
と、全く根拠なく思っていたりします。
43 :
root▲ ★ :2006/07/26(水) 02:14:00 ID:???0 BE:4469377-BRZ
>>42 > つまり、だいたい私と同じか、あるいはそれ以上のレベルの廃人は、
> 全国に10万人ぐらいは、いることになるです。
で、これは自分で飛行機を利用した時の、PLT 以上の数の感覚、
例えばラウンジの込みようとか、ビジネスクラスに乗ったときの配膳メニューに
マルP と書いてあるか(見えないようにしているけどたまに見える)とかとも、
だいたい一致している気がするです。
個人的には「廃人は思ったより多いなぁ」という感覚ですね。
というかマイレージプログラムがあるから、廃人が増えるのかもしれないです。
ひろゆきってどのブラウザ使ってるの?
それやるならついでにプロフィールの背景色連動させて変えようぜ。紺色にしたい あとそろそろ ? を消して BRZ とかにリンクはらね。 そろそろスレ違いな雰囲気だが
46 :
root▲ ★ :2006/07/26(水) 02:17:07 ID:???0 BE:4104195-BRZ
>>45 > あとそろそろ ? を消して BRZ とかにリンクはらね。
> そろそろスレ違いな雰囲気だが
これは、スレ違いじゃないかもですね。
新しい read.cgi では、? をはずしてみるとか。
それはいいが、まずdatの形式を#形式にしてもらえないだろうか。 スレ違い御免。
あとポイント自分に送れるままにしとくなら ポイントに必要なch森稼ぐ手段としての証券取引所も活性化が見込める
49 :
root▲ ★ :2006/07/26(水) 04:22:27 ID:???0 BE:4104195-BRZ
AjaxでdatをDLするんでそ? 最新のN件とかはどうするの?毎回DAT丸ごとDL?
XMLHttpRequest だといろいろ苦しみそうな気がするので, 方針転換して隠しフレームに読み込む形にしてみますた. たぶん,これで文字化け問題も解決するかと...... それから,先日作った be.js も取り込んで,dat への記録は従来形式 (# の数でランクを示す)のままでも表示段階でマイレージランクに 変換するようにしますた.頭の ? も消えます(ただ,直接 dat に マイレージランクを記録してる分には対応してません). で,be.js は index.js と同様に www2 あたりに置いて頂ければ,と......
まだばーじょんは書いて無いね
あ、opera8.54でも見られるようになった。 だけど、ここ壊れていますが最後に出るよ。
IEはダイレクトXにfirefoxはextentionからdll呼び出し とかはダメ?operaは知らないけど・・・
全てに対応しようとしないで、対応していないブラウザはいままで通りread.cgiに飛ばすってのがいいんじゃいかと。 半分のアクセスをこれで対応するだけで、負荷的にはかなり下がるんだし。
IE以外のブラウザは無視して可ではないのですか。 どういうユーザ層がどのブラウザを使ってるか考えれば。
そうだね、プロテインだね
read.cgi動かすのとiconvとかnkfとかを動かすコストってどのくらい違うのかな。 ほら、XMLHttpRequestってリクエストヘッダも自由自在に送れたりするじゃん?
隠しフレーム方式の場合,今度は文字コードではなく MIME type がバタつくようで...<IE
text/plain として扱ってくれるといいんですが,text/html と勝手に解釈してくれると
dat 中に含まれるタグのところでテキストがバラされたり \n もすっ飛んだり,
ってのが
>>57 のようで......あちら立てればこちら立たず......
というか、Ajax使うならまず最初にブラウザ判定をきちんとやって、 非対応ブラウザなら別の処理に回すってのが常道かと思うが
IEだと「別の処理」すらできないのにブラウザ判定も何もないよ
Javascript用のdatディレクトリを用意してmod_charset_liteの設定をする.htaccessを用意して datは専用ブラウザ用の方へのsymlinkにすると?
やりたいことと、とりうる手段の整理からしようかと。
とりあえず、最優先の問題点は現方式だとIEでは表示できない事ですか (炎狐では問題なし)
よく見てないので何ですが datをtext/plainで表示するように.htaccessで設定したものを アップした後 スクリプト内で datファイルを読み込んだ直後(70行目あたり?)に 下記のようなタグ書き換えを行う正規表現を置いてみてはどうでしょうか。 var loadDat = loadDat.replace(/</g,"<"); var loadDat = loadDat.replace(/>/g,">"); var loadDat = loadDat.replace(/<pre>/gi,""); var loadDat = loadDat.replace(/<\/pre>/gi,""); var loadDat = loadDat.replace(/&/gi,"&"); var loadDat = loadDat.replace(/<xml>/gi,""); var loadDat = loadDat.replace(/<\/xml>/gi,""); 変化が無ければごめんなさいという事で。 失礼しました
タグが書き換えられている・・ こちらです↓ var loadDat = loadDat.replace(/&lt;/g,"<"); var loadDat = loadDat.replace(/&gt;/g,">"); var loadDat = loadDat.replace(/<pre>/gi,""); var loadDat = loadDat.replace(/<\/pre>/gi,""); var loadDat = loadDat.replace(/&amp;/gi,"&"); var loadDat = loadDat.replace(/<xml>/gi,""); var loadDat = loadDat.replace(/<\/xml>/gi,""); 「&」を半角にして頂ければ。
>>67 まだ、個別の項目にいく時期ではないと思うです。
JavaScript でやるのかどうかも、まだ決まっていないと思っています。
というわけで、整理を。
○今回やりたいこと
2ちゃんねるのサーバの負荷を軽くしたい。
○今回の目標
今回は具体的な事項として、
・掲示板サーバで read.cgi を動かすのをできるだけ少なくする
ことを目標にする。
最終的には全廃をめざすが、read.cgi の起動数を少なくできるなら、それでもよい。
つまりread.cgiの負担を減らす事かと
75 :
外野ァァン :2006/07/26(水) 19:16:29 ID:WJtZ0RWx0
>>70 がrootくんが独自に掲げたお題だっていうなら納得
>>70 がひろゆきくんからの指令だって言うなら否定
76 :
root▲ ★ :2006/07/26(水) 19:28:22 ID:???0 BE:1915373-BRZ
>>70 は、私の位置づけです。
で、それがたまたま、管理人の興味と一致したので、
私もやる気になった。
ということだと思います。
77 :
root▲ ★ :2006/07/26(水) 19:31:58 ID:???0 BE:2919348-BRZ
なので、私は
>>70 の目的が実現できるのであれば、
別にその手段が JavaScript である必要はかならずしもなくて、
別のものでもいいと思っているです。
JavaScript 以外の候補としては、
・flash
・Java
なども、あると思っています。
で、私としては管理人が「JavaScript 以外のものは使うな。これは私の命令です」
と言わない限り、可能性はより多いほうがいいなと考えています。
つまり、上記に JavaScript も含めたそれぞれの
・メリット
・デメリット
・実現可能性
などなどの要素を総合的に評価したうえで、
目標実現のためにどんな道具を使うのがいいか、決めたいかなと。
だったらActiveXでWebブラウザ上に2chブラウザ再現しちゃえば良いじゃん。IE限定だけど
79 :
root▲ ★ :2006/07/26(水) 19:36:47 ID:???0 BE:4378368-BRZ
>>78 それも、手段としてはありえますね。
今
>>78 さんは「IE限定」と書かれていたわけですが、
目的の実装に使う手段を選ぶときには、そういったファクター(汎用性とか)も、
当然考慮するべきものの一つなのかなと。
IETabみたいに、レンダリングエンジンをうまく ごにょごにょすればfirebirdでも大丈夫だぜ
>>78 >>80 うーん、read.cgiの代わりだからなあ。2ch独自のものを導入させるってのは違うと思う。
JavaScriptにしてもFlashにしてもJavaアプレットにしても、2ch独自じゃないし。
2001年の閉鎖危機の時にもread.cgiをjavascriptで代用するという案があったけど、 当時は互換性うんたらかんたらで却下されました。
んで、mod_charset_lightでUTF-8に変換してみたけど、うまくいきますね。 ただ、Shift_JIS的におかしなデータがdatファイルに存在すると500 Internalサーバーエラーになるっぽいですね。
84 :
root▲ ★ :2006/07/26(水) 20:33:31 ID:???0 BE:2918584-BRZ
>>83 なるほど。
ただこの場合、コード変換の分だけ、サーバは仕事をすることになりますね。
read.cgi 動かすのとどっちが負荷がトータルで低くなるか、が、
重要なポイントの一つなのかな。
あとは、ユーザに影響が出ないように実装できるのか、とか。
いずれにせよ、
> ただ、Shift_JIS的におかしなデータがdatファイルに存在すると
> 500 Internalサーバーエラーになるっぽいですね。
は、ちょっといまいちなのかなと。
>>84 それは詳しい人のフォロー待ちです
マニュアルちょっと読んで試しただけなんで
Java アプレットは重い(特に VM 起動時)ですからね......
Flash は Java よりは軽いでしょうけど,(文字列の扱いにもよるのかも
知れませんが)文字化けすることもあって......まぁこちらの環境は少数派でしょうけど.
http://sunos.saita.ma/read-js/test/flash.png JavaScript はブラウザによって挙動不審になったりとかする部分もあったりするのが
苦労するところですが,それを乗り越えれば一番お手軽ではあるんですよね.
あと,フィルタモジュールの負荷ってことなら,文字コード変換より圧縮,
つまり mod_deflate の方がよほど重いかと.
ここで空気を読まずにJSP
JSPって↓のようなやつだっけ? <% for(int i = 0; i < bbs.getLastNum(); i++){ %> メッセージ:<%= bbs.getMessage() %><br> <% } %>
Web製作板でJavaScript版 プログラム板でJava Applet版 Flash板でFlash版 を作ればいいんでね?盛り上がりそうw
SunがMicrosoftのVM潰さなければねぇ。 独自拡張もあったにしろMicrosoftの方が早かったのに。
JSPはサーバサイドだからあんま意味なくね? それとも実はものごっつ軽いとか?
いや、別にJSPがものごっつ軽いとかは無い。 普通にサーバサイドだし。
不正なバイトシーケンスを無視して 500 エラーにしないようにするパッチ. --- httpd-2.2.2/modules/filters/mod_charset_lite.c Sat Apr 22 10:53:06 2006 +++ httpd-2.2.2/modules/filters/mod_charset_lite.c Sat Apr 22 10:53:06 2006 @@ -188,6 +188,31 @@ return NULL; } +static apr_status_t _xlate_conv_buffer_no_eilseq(apr_xlate_t *convset, + const char *inbuf, + apr_size_t *inbytes_left, + char *outbuf, + apr_size_t *outbytes_left) +{ + apr_status_t rv; + + while (inbytes_left && outbytes_left) { + apr_size_t inbytes = *inbytes_left, outbytes = *outbytes_left; + + if ((rv = apr_xlate_conv_buffer(convset, inbuf, inbytes_left, + outbuf, outbytes_left)) != APR_EINVAL) /* EILSEQ */ + break; + if (*inbytes_left) + inbuf += inbytes - --(*inbytes_left); + if (*outbytes_left) + (outbuf += outbytes - --(*outbytes_left))[-1] = '?'; + } + + return rv != APR_EINVAL ? rv : APR_SUCCESS; +} + +#define apr_xlate_conv_buffer _xlate_conv_buffer_no_eilseq + /* find_code_page() is a fixup hook that decides if translation should be * enabled; if so, it sets up request data for use by the filter registration * hook so that it knows what to do
文字コード変換でサーバーにかかる負担はどれくらいなんだ?
文字コード変換もjava scriptで。
97 :
root▲ ★ :2006/07/27(木) 00:01:42 ID:???0 BE:1459744-BRZ
>>90 それぞれの住民が、競い合って作るというのはどうか。
>>94 おぉ。
これでいけるなら、文字コード変換のコストは
それほどでもないと。
あとは、/板名/dat だと今までの dat を生読みして、
/板名/datutf8 だと mod_filter かました結果で出る、
というふうにできると、いいのかな。
mod_proxy 使えばできそうな気がするんですが、どうやるのがいいんだろうか。
jspは意味無いでしょ・・・ 折角、サーバ側で読み出しの負荷を下げようというのに・・・
>>97 板のディレクトリのところに dat-utf8 とかでdatディレクトリに対しシンボリックリンク作って
そこへのアクセスはmod_charset_liteを使うようにするとか
これだと各サーバーの各板でシンボリックリンクを張る作業しなきゃいけないから大変?
100 :
root▲ ★ :2006/07/27(木) 00:26:22 ID:???0 BE:729942-BRZ
<ぼそ>スイスアーミーナイフ</ぼそ>
rangeで**バイト以降のデータをリクエストしたら、変換後のバイト数で来るんだよね。
ブラウザによって違う動作といえば、Gecko系のXMLHttpRequestは 同一ホストか同一ドメインに限られていたような。 これは各サーバに入れておけば済む問題だが。
104 :
root▲ ★ :2006/07/27(木) 20:07:57 ID:???0 BE:2919348-PLT(10000)
JavaScript は、結構方言が多いんですかね。 大きく分けると、 ・IE 系 ・Gecko 系 ・Opera 系 ・Safari 系 ぐらい?
そこにバージョンの差とかいろいろ
>104 分類すると ・IE−Sun系 MS系 ・Gecko−1.5系 2.0系 3.0系 OperaとSufariは使ったことがないので補足ヨロ
>106 Gecko間違えて炎狐でやっちゃった ・Gecko−1.8.0系(炎狐1.0.x) 1.8.1系(炎狐2.0) 1.9系(炎狐3.0)
Safariは1.X系と2.X系…か?
SafariはKHTML系の一部だろ。 他にKonquerorとかある。
>>102 そうなります......と言いたいところですが,基本的に chunked 転送となって
Range は効かないかと.もっとも,Range を効かせた場合は mod_deflate で
圧縮するわけにはいかない(Range 指定しても圧縮後の内容に対して
Range が効いてしまうため)とか,キャッシュと Range の相性もよろしくない
ってことで,果たしていいのか悪いのか......
なお,前のパッチ以外にも修正した方がいい点があったので,パッチ更新版を.
http://sunos.saita.ma/read-js/test/mod_charset_lite.patch ちなみに,httpd.conf の設定はこんな感じかな.
AliasMatch ^/(\w+)/dat-utf8/(\d+\.dat)$ /home/ch2xxx/public_html/$1/dat/$2
<Location /*/dat-utf8/*.dat>
SetOutputFilter XLATEOUT
CharsetSourceEnc CP932
CharsetDefault UTF-8
</Location>
Alias /test/bbs-utf8.cgi /home/ch2xxx/public_html/test/bbs.cgi
<Location /test/bbs-utf8.cgi>
SetInputFilter XLATEIN
CharsetSourceEnc CP932
CharsetDefault UTF-8
</Location>
112 :
root▲ ★ :2006/07/27(木) 21:28:07 ID:???0 BE:5107687-PLT(10000)
>>111 おぉ、、、。
これは、dso.2ch.net に入れると、
テストが可能になると言っていますか?
>>111 かもですね.ただ...... sunos.saita.ma で見ている限りでは,
mod_charset_lite で必要な APR-Util 中の apr_xlate_*() の関数群が
FreeBSD だと普通にビルドすると APR_NOTIMPL になっちゃうかも知れない
っぽいんで,ビルド時に細工してやらないとならないのかも......?
>>113 s/
>>111 /
>>112 /
....../include/apu.h 中の
#define APU_HAVE_APR_ICONV 0
#define APU_HAVE_ICONV 1
#define APR_HAS_XLATE (APU_HAVE_APR_ICONV || APU_HAVE_ICONV)
のところで APR_HAS_XLATE (== APU_HAVE_APR_ICONV || APU_HAVE_ICONV) が 0 に
なってるようだと,そのままでは使えないので細工の上 APR-Util のビルドし直しが必要かと.
116 :
tato :2006/07/28(金) 00:17:25 ID:+swShs5T0
117 :
◆KAGESsh/NQ :2006/07/28(金) 00:26:30 ID:BnqGP0Q/0 BE:5511348-2BP(111)
一瞬CPUファンがすごく回転した。コワス・・・
む、500になる。
122 :
tato :2006/07/28(金) 02:00:54 ID:+swShs5T0
キャッシュの再読み込み時に文字コード判定をUTF-8にしているようですね。 もし、キャッシュを無視する下記のような方法だとどうなるでしょうか?キャッシュは使えなくなりますが。。。 httpReq.open("GET", urlPrefix + "../" + paths[1] + "/dat/" + paths[2] + ".dat?"+(new Data()).getTime(),false); #ところで、asyncがfalseのわけは?
あ...... sunos.saita.ma には mod_headers が入ってなかったんだ......
JavaScript重すぎ。
http://pc8.2ch.net/test/read.cgi/php/1147750917/337の案って <?xml version="1.0" encoding="Shift_JIS"?><response><![CDATA[
動け動けウゴウゴ2ちゃんねる<><>03/08/31 03:53 ID:xo367wqv<> 踏むとスレ立てしたり投稿したりするスクリプトにつて <br> 情報を集めたり対策したりするスレです。 <>■ スレ立て・投稿スクリプト対策
動け動けウゴウゴ2ちゃんねる<>sage<>03/08/31 03:53 ID:Xj/IL/tw<> ( ゚д゚)ポカーン <>
動け動けウゴウゴ2ちゃんねる<>sage<>03/08/31 03:59 ID:xo367wqv<>
http://okazu.bbspink.com/test/read.cgi/ascii/1062203672/13- <>
(略)
]]></response>
っていうはったりXMLをサーバーが用意。
※CDATAは、 ]]> だけが使えない。セクションの終りになっちゃうから。
文字コードの変換は行わないで、
><?xml version="1.0" encoding="Shift_JIS"?><response><![CDATA[
と、
>]]></response>
で、はさむだけだから負荷はそんなにない感じ?
JavaScript側は
httpReq.responseText
を
httpReq.responseXML.documentElement.text
に変更するだけ。
って感じかな。誰かできる人試してくれ。
上手く行ったらBeをふりこんで置くように
今のread.cgiの出力を単純にこうするだけでもけっこう軽くなるでしょうか? <form name="datForm"> <textarea style="display:none;" name="namaDat"> (ここにdatをそのまま出力) </textarea> </form> <script src="lib.js"></script> <script> showThread(document.datForm.namaDat.value,1,1000); </script>
127 :
tato :2006/07/28(金) 09:46:52 ID:chE9END/0
今日、別のマシンのIE6で見たらリロードしても文字化けしていませんでした。もしかしてサーバー側で何か変りましたか? ところで、 httpReq.open("GET", urlPrefix + "../" + paths[1] + "/dat/" + paths[2] + ".dat", false); httpReq.send(null); texts = httpReq.status == 200 ? httpReq.responseText.split("\n") : ["[エラー]<><>[エラー]<>[" + httpReq.statusText + "]<>[エラー]", null]; この部分ですが、このままですと着信待たずにresponseText要求して失敗する可能性が高いので、たとえば、 httpReq.onreadystatechange =function () { texts = httpReq.status == 200 ? httpReq.responseText.split("\n") : ["[エラー]<><>[エラー]<>[" + httpReq.statusText + "]<>[エラー]", null]; } httpReq.open("GET", urlPrefix + "../" + paths[1] + "/dat/" + paths[2] + ".dat", false); httpReq.send(null); オーソドックスにこんな方が良いのではないかと思います。
128 :
tato :2006/07/28(金) 10:13:47 ID:chE9END/0
>>125 は、たぶん良い方法だと思います。が、
httpReq.responseXML.documentElement.text がおそらくOperaやFirefoxで動作しない気もしますので
普通に、
var xmlDoc = oj.responseXML
var nodes = xmlDoc.getElementsByTagName("response")[0].firstChild.nodeValue
などで取り出すのが良いかも。
>>125 それって,SSI 使えば結構簡単にできそう......と思ったけど,
SSI は普通にやると Last-Mod を吐かない,XBitHack 使って吐くようにしても
それはインクルードした dat の mtime ではなく外側の xml の mtime になってしまう,
ってことで,やるとしたら read.cgi のように DSO で dat を取り込んでそんな感じに
出力するってことになるかな.
てか,そもそも負荷軽減が目的でそういうことやるなら,現行の read.cgi にムダがないか
見直すのが先決という気も.read.cgi を介さず dat を直接返せば軽くなると言われてるけど,
mod_deflate 使わずに sendfile() で一気に送出するならともかく,実際は gzip 圧縮かけてますよね.
圧縮処理自体,文字コード変換や HTML 整形処理などと比べても結構重いはずです.
それにもまして read.cgi が重いとすれば,現状の read.cgi にムダがあることの現れではないかと.
現状では Last-Mod 吐いてないからキャッシュが効かないとか,(サブリクエストを使わなければならない
雪だるま鯖では仕方ないとして)mmap() 使わずにバッファに dat を読み込んでるとか,
その他 HTML 整形処理などももっと軽量化する余地がないかとか,そういうあたりのことを......
あと,read.cgi 出力に mod_cache かましたらどうか,ってのもあるか.
そうしたことを考えれば,JavaScript 版を作るのは負荷対策というより
「こういうこともできるのか」という技術的好奇心の側面の方が強いという気がします.
>>118 のページに、「文字化けデモです」と注意書きを入れました。
>>129 > そうしたことを考えれば,JavaScript 版を作るのは負荷対策というより
> 「こういうこともできるのか」という技術的好奇心の側面の方が強いという気がします.
どこまでカリカリにチューニングしたって JavaScript を利用すれば結局
サーバ側の整形処理そのものを省略できるんだから負荷対策にはなるんじゃない。
133 :
tato :2006/07/28(金) 11:24:05 ID:chE9END/0
>>132 その主張は一面では正しいと思います.ただ,PATH_INFO であれ QUERY_STRING であれ
URL で板・スレを指定する限りにおいてはムダなリクエストが増えるという側面もあります.
ページをロードするたびに read.html と *.dat をそれぞれロードするというのはもちろんですが,
別の板やスレを表示する場合 read.html そのものは変化しないにもかかわらず
ブラウザから見ると別のドキュメントとして新たに取得し直してしまいます.
例えば
/test/read.html/operate/1000000000/ と /test/read.html/operate/1000000001/
/test/read.html?bbs=operate&key=1000000000 と /test/read.html?bbs=operate&key=1000000001
どの場合でも read.html 自体は変化しないのですが,ブラウザから見ると
すべて別個のドキュメントとしてそれぞれに read.html をロードし直してしまうのです.
もちろん,それぞれのページ内でさらに *.dat を取得します.
そうした余分なリクエスト増加も勘案すれば,read.cgi をリファインした場合と比較して
果たしてどうなのか,というのも要考慮かと......
>>133 現状のはとりあえず UTF-8 前提になってるので charset 指定を外してます.
135 :
tato :2006/07/28(金) 11:50:21 ID:chE9END/0
今日使っている文字化けしないマシンを調べたら、どこの設定をいじっているのかは不明ですが、キャッシュが残らないようになっています。 つまり、毎回読みにいっているわけですけれど、少なくとも、このShift_JISの文字化けは、 キャッシュさえ読まなければ解決する可能性が高い気がします。 キャッシュのせいで、文字化けしたり、キャッシュが効きすぎて書き換わらないなどのトラブルが起きるよりも、毎回読みに行くとしても no-cacheなどのほうが良いかも?という意味では、 <meta http-equiv="Expires" content="Sun, 10 Jan 1990 01:01:01 GMT" /> <meta http-equiv="Cache-Control" content="no-cache" /> <meta http-equiv="Pragma" content="no-cache" /> を書いたり、url+"?"+(new Date()).getTime()でキャッシュを無視したりする方がよいかもしれません。
>>134 全部同じ HTML でいいんだから1画面フレームで表示、てのもできるけど、そうでなくても
<script type="text/javascript" src="****.js"></script>
と指定すればこのファイルはキャッシュされるよ。
> それぞれのページ内でさらに *.dat を取得します.
これは多分、read.cgi も同じでしょう。
Ajax スレの方に書いたけど、plain.cgi とか使えば最新 50 もできるよね。
>>136 いや,だから JavaScript 部分を分離しようがフレームを使おうが何だろうが,
外側の read.html 自体は板・スレが変われば別ドキュメントとして扱われる,
だからそのたびに新たにロードされる(余計な HTTP リクエストが発生する)
ということを言いたいわけですが......
>> それぞれのページ内でさらに *.dat を取得します.
>これは多分、read.cgi も同じでしょう。
少なくとも,read.cgi 自体が *.dat を HTML 整形する限りに置いては
HTTP リクエスト・レスポンスは1回だけで済むわけですが......
それとも,read.cgi がサーバ内で *.dat を読み込むって意味で言ってますか?
ネットワーク越しに HTTP リクエストを受け付けてクライアントに *.dat の内容を
返すのに比べれば,ローカルファイルを open(), mmap() して読み込むだけの
方が遙かに軽いわけですが......
138 :
136 :2006/07/28(金) 12:07:04 ID:YlQHVubn0
あーもっと簡単な方法に気づいた。 /test/read.html#/operate/1000000000/ location.hash で指定。ダメかな?
>>138 余計なリクエストを発生させないという点では有効でしょうけど,
その形式が普及するまでの間,既存の板・スレ指定を行った URL が残る限りは
効果を発揮しきれないかと.まぁ過去にも一度 QUERY_STRING から PATH_INFOへの
転換を行ってるので,そうした新形式への変換は必ずしも不可能ではないかも知れませんが......
>>139 > 既存の板・スレ指定を行った URL が残る限りは効果を発揮しきれないかと.
あーそっか。そうだね。
>>137 > ローカルファイルを open(), mmap() して読み込むだけの
> 方が遙かに軽いわけですが......
でも、read.cgi はそれを更に整形してからネットワーク越しに送ってるんだよね?
送られるデータの量よりは、リクエストの数の方が問題なのかな。
>>140 read.cgiはさらに負荷もあるですよ
142 :
tato :2006/07/28(金) 12:39:40 ID:chE9END/0
考えられるShft_JIS用文字化け対策リストはこんな感じ?
>>111 utf-8専用のディレクトリ/dat-utf8/を作る
>>125 respnseTextではなくrespnseXMLでcharsetを明示処理 -->Safari1.2でも動作可
>>135 キャッシュ無効no-cache -->ユーザーの設定が優先されるので駄目かも&負荷?
>>135 キャッシュ無視url+"?"+(new Date()).getTime() -->read.htmlを何度でも呼ぶ負荷が気になる?
utf-8にしてもresponseTextではBOMを付けるなどの弊害もある細工が必要なので、
私はXMLを使う
>>125 がお勧めですが、.datの構造を変えるのは手間?
だめなら、キャッシュを無視。
143 :
tato :2006/07/28(金) 12:47:17 ID:chE9END/0
静的ファイルへのリクエストと.cgiの負荷を比べると、普通は.cgiの負荷の方が高いと思いますが、 なにしろ、リクエスト数の多い2chなので、その判断は現場の人でないとわからないかも?
>>140-141 read.cgi の処理による負荷があるのはわかります.しかし,
静的コンテンツであっても HTTP リクエストを処理することによる負荷もあります.
HTTP リクエストが増えればそれによる負荷増もあるってことで,
そのあたりを read.cgi をリファインした場合と比較すればどうなのか,と.
どんなにリファインしても.cgiの負荷が静的コンテンツの負荷より下がるとは思えないけどなぁ
一応補足しておくと、read.cgiはCGIと表記はなっていますが、実際はApacheモジュールに近いものです。
mod_cgidso
http://sunos.saita.ma/mod_cgidso.html read.htmlはJavaScriptを使う関係で、2chの背景画像みたいに
別サーバーにおくというわけにも行かないですしねえ
read.htmlを使うとして
(1)UTF-8に変換(responseText)
>>111 (2)datファイルを単純なXMLに変換(responseXML)
>>125 (3)キャッシュ無効は、If-Modified-Since: 昔の時刻 を設定するのが一番どのブラウザでも安全かと
147 :
tato :2006/07/28(金) 13:15:09 ID:chE9END/0
ああ、そうだ。
>>136 の方が書いていますが、
たとえば、read.htmlのソースを
<script type="text/javascript" src="read.html.js" charset="xxx"></script>
などにして、全部JavaScriptで出力してしまえば、
read.html.js自体はキャッシュされますから、
/test/read.html/operate/1000000000/ と /test/read.html/operate/1000000001/
/test/read.html?bbs=operate&key=1000000000 と /test/read.html?bbs=operate&key=1000000001
こんなふうに何度呼ばれても、再読込は1行だけかも。
HTTP リクエスト回数そのものの負荷は減らなくてもかなり軽くはなります。
あ、read.cgiから
<script type="text/javascript" src="read.html.js" charset="xxx"></script>
を出力するとリクエスト回数は減って、datのロードをクライアント側のAjaxにも任せられる?ハイブリッドみたいな?
>>145 HTTP リクエスト数がほぼ同一という前提ならそれは当然です.
さすがに,単一のリクエストにおいて動的コンテンツ処理の負荷が
静的コンテンツ処理の負荷より軽いなんてことを言うつもりはないです.
ただ,JavaScript 版(に限らず Java や Flash などでもそうでしょうが)で
ページをロードした場合,外側の html と内側の dat 双方の HTTP リクエストが発生します.
つまり(静的コンテンツではあるものの)HTTP リクエストが増加することは必至です.
しかも,その静的コンテンツも sendfile() で一気に送るのではなく,
gzip 圧縮という結構重い処理を介してます.そうしたことも考慮すれば,
HTTP リクエスト増加による負荷増も無視できない水準になるだろう,
それを read.cgi をリファインした場合と比べればどうなのだろうか,と......
要は,個人的には JavaScript 版 read.cgi を作ること関しては,
負荷対策を第一義的目標として掲げて行うことには懐疑的,
(負荷も考慮しつつも)技術的好奇心を主眼として行うのなら好意的,ってことです.
iframe 使った読み込みした場合のデータのキャッシュって普通のコンテンツと同じかな? 使えるとしたら、Expires で超未来指定することで HTTP リクエストを軽減できるかも。
150 :
tato :2006/07/28(金) 13:52:45 ID:chE9END/0
それにしても、metaでもブラウザ側でもShift_JISを指定した上で、 IE6で通常のShift_JISファイルをXHRで読み込んで、文字化けするということは無いと思うので gzip 圧縮か、Content-Type設定に原因があるかも。でも、仮にこれが解決してもXML処理の方がお勧めではあります。
151 :
149 :2006/07/28(金) 14:17:19 ID:YlQHVubn0
いや iframe じゃなくてもいいか。考えたから暇な人は読んでみて。 <script type="text/javascript"> var data = new Array; // まずスレッド用の配列を作る var pos = -1; </script> <script type="text/javascript" src="/test/read.js/operate/1000000000/1-"></script> <script type="text/javascript" src="/test/draw.js"></script> サーバ側は js ファイルを CGI で吐かせるようにする。 data[++pos] = "*********"; // " はエスケープ(書き込み時に " になってればそのままで) data[++pos] = "*********"; data[++pos] = "*********"; で、吐くデータが n 個(1 個以上; 適当に)を超えたらデータ部の後ろに 次のセクションを読み込むスクリプトを書いた上で、 $js .= qq{data[++pos] = "$_";\n} for map { s/"/"/g; $_ } @data; " $js .= q{document.write('<script type="text/javascript" src="/test/read.js/operate/1000000000/$next-">');} if scalar @data >= $n; このリクエストの Expires を超未来にする、て感じ。 難点はあぼーんが反映されないってことだけど。
152 :
149 :2006/07/28(金) 14:22:20 ID:YlQHVubn0
× q{document... ◯ qq{document...
>>151-152 そもそも,ブラウザでページ自体をリロードしたらどうなるか......
「そういう使い方はしないで内容更新時にはページ内の更新ボタンをクリックして下さい」
とか呼びかけようとしても,read.cgi 利用者層の多くを占めるライトユーザには
なかなか普及しなさそうな気も...... read.html に対して
ExpiresActive On
ExpiresDefault "access 1 week"
とか指定しても,ページ自体をリロードすれば HTTP リクエストは
発生するようです.いったん取り込んだ URL なら 304 にはなりますが.
で,今の DSO 版ではない昔の read.cgi には,HTML 整形せず dat の形式のままで
行単位の内容を返す raw mode ってのがありました(今は廃止).でも,HTML 整形するよりは
raw 形式の方が軽いとはいえ,結局サーバ側プログラム走らせることには変わらないんですよね.
そこに HTTP リクエスト増も加わるってことも考えれば......
作ってから考えればいいんじゃね
155 :
149 :2006/07/28(金) 15:08:55 ID:dbg/okTO0
WindowsのIE6では、更新ボタンを押した場合は再読み込みされるよ
157 :
149 :2006/07/28(金) 15:22:51 ID:dbg/okTO0
>>155 内側で読み込むデータってことね.それなら,今も実際に index.js で利用してて
効果は出てるようです.でも,外側の read.html のリロードまでは抑制できないかと.
で,
>>151 は内部で読む方のリロードを抑制ってことか.でもそれだと今度は
dat が更新されてもなかなか反映されないってことになりそうな......
あと,そういう形で行単位の内容を返すなら
・ \n を探すためファイル内容をスキャン.
・ JavaScript 文字列にするなら,さらに " や \ をエスケープするためにスキャン.
こういうことやるぐらいなら,タグ付け加えて HTML 化ってのがそういう処理に比べて
べらぼうに重いとは思えません.もしべらぼうに重いとすれば,それはムダな処理をしてるからかと.
ある程度は重くなるでしょうけど,少なくとも HTTP リクエスト増加による負荷増より
ずっと重いなんてことはあり得ないような.
有効期限も長くし過ぎると、テストが十分でなくて不具合を混入させてしまったまま リリースした時に困りますよ。失礼な言い方になるけど、ユーザーの大半は基本的に 馬○ですからね。不具合がある事を訴えることは出来ても、何が原因で どうすればいいか思いつくことまでは出来ないのが多い。 まぁここに来て騒いでCtrl+F5を押せって言われる流れになるんでしょうけど。
160 :
149 :2006/07/28(金) 16:12:12 ID:dbg/okTO0
>>158 キモは、ブラウザのキャッシュに入ってるデータはリクエストしないってとこだったりするのだけれど。
行単位がダメなら、やっぱり iframe なのかな?でもキャッシュが効くかどうかもわからない。
新着を探すためには、最後の位置を覚えとかないといけないし。これは、read.js の他に read.txt も必要かも。
そしてやっぱり、更新ボタンを押したらリロードしちゃうんでは、ちょっと微妙かな。
read.cgi のキャッシュの仕組みがよくわからないけど、多分、
最新 50 の後に全表示とか、キャッシュにデータが重複してても構わず処理するんでしょう。
サーバ側は知る術が無いしそれは普通なんだけど、そうならやっぱり。
161 :
動け動けウゴウゴ2ちゃんねる :2006/07/28(金) 16:16:12 ID:lDXvnfU00
1レス1ファイルにするのが一番良い。
162 :
ひろゆき@どうやら管理人 ★ :2006/07/28(金) 16:21:33 ID:???0 BE:227366-BRZ(2585)
jsはwww.2chとか静的コンテンツ用のサーバにおいて、 datはqb5.2chの既存のサーバとかコネクションを切り分けるとかって 出来るんでしょうか?
んー、Gecko(Firefox)はできない可能性が高いけど、2ch.net同士だからなぁ。
164 :
149 :2006/07/28(金) 16:26:09 ID:dbg/okTO0
js が別のサーバに置いてあったとしても、 js を読み込む(実行する) html が読みたい dat と同じドメインにあれば、dat は読み込めるよ。
>>162 JavaScript 部分を HTML から分離して別のところに置く,ってのは
今の read.cgi や index.html でもやってます(www2.2ch.net/snow/index.js).
ただ,URL で鯖・板・スレを指定している限り,外側の read.html が
各所に散らばる状態はいかんともしがたいかと.
166 :
ひろゆき@どうやら管理人 ★ :2006/07/28(金) 16:31:45 ID:???0 BE:89227-BRZ(2585)
外側の read.htmlといいますと?
でっ。ごめんなさい
170 :
ひろゆき@どうやら管理人 ★ :2006/07/28(金) 16:57:20 ID:???0 BE:353478-BRZ(4585)
173 :
149 :2006/07/28(金) 17:09:55 ID:dbg/okTO0
js を実行する html と違うドメインの dat は、js からは セキュリティの関係で読み込めないよ。
他ドメインの js ファイルを実行することはできるから、
>>151-152 なら大丈夫だけどね。
従来のアドレスにアクセスしたらそのアドレスに飛ばすっつーことか。 というかスキーム名要らなくない? もっと言うとPATH_INFOでいいような。
セキュリティがドメイン単位なら問題ないような。 鯖単位だと別鯖にだせないけど。
176 :
ひろゆき@どうやら管理人 ★ :2006/07/28(金) 17:18:29 ID:???0 BE:151283-BRZ(4585)
>>173 ドメイン単位?サーバ単位?
同一ホストの制限のあるブラウザって大手ではどんなんがあるんでしょう?
どうせ.cgiでなくなるので、URLの互換性はあんまり気にしなくていいとおもいます。
178 :
ひろゆき@どうやら管理人 ★ :2006/07/28(金) 17:23:39 ID:???0 BE:158055-BRZ(4585)
おぉ、、そういうことなんですかぁ。 #すげー。
179 :
149 :2006/07/28(金) 17:25:13 ID:dbg/okTO0
>>176 サブドメインを変えて試したことが無いから説得力が無いけど…
多分完全に一致するかどうかでチェックするんじゃないかな。2ch で言うサーバ単位になると思う。
ドメインを超えてアクセスできるとセキュリティホールみたいに見られるから、
大抵のブラウザ(IE、FF、Opera)ではクロスドメインのアクセスはできないよ。
確かFQDN単位、だった気がする。あくまで気がする。
オフトピ IE7β3では異なるドメイン間のサブフレーム移動はデフォルトで禁止 されてます。 (前までこの質問で賑わってました。)
http://qb5.2ch.net/ を表示させた状態で
javascript:var h $3D window.XMLHttpRequest
? new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP");
h.open("GET", "
http://info.2ch.net/ ", false);
h.send("");
alert(h.responseText);
を全部一行につなげてロケーションバーから入力すると,
IE も Firefox もダメっぽいですね.
h.open("GET", "
http://qb5.2ch.net/ ", false);
に変えれば Ok ってことで,どちらも「同一ホスト」という制限かと.
Mozilla 1.7.x (Gecko) もopenの段階でエラーが出るね。
>>182 ×javascript:var h $3D window.XMLHttpRequest
○javascript:var h = window.XMLHttpRequest
Internet Explorer 6.0 SP1 もopenの段階でえらー。
186 :
tato :2006/07/28(金) 17:39:54 ID:chE9END/0
187 :
動け動けウゴウゴ2ちゃんねる :2006/07/28(金) 17:48:40 ID:t3XQDhSZ0
???????????????
188 :
動け動けウゴウゴ2ちゃんねる :2006/07/28(金) 17:48:45 ID:+s1TuJnu0
こっかいぎじどうをばくはするよ
189 :
tato :2006/07/28(金) 17:49:19 ID:chE9END/0
外側のread.htmlと
その内側からAjaxでリクエストする.datは同じドメインでなければなりませんが
でも、同じ内側から呼び出す相手でも、Ajaxを実行する.jsファイル自体は、クロスドメインにおいてあっても大丈夫です。
ちなみに、もしdataスタイルをjsのJSONなどの書式にしてもよければ、Ajax以前の時代のクロスドメインなダイナミックロードというのもありますけれど。
http://game.gr.jp/mag2p/2/loadjs/loadjs.htm
read.js 全ての処理をさせる どこに置いてもおk read.html read.jsを読ませるだけ datと同じドメインじゃなきゃ駄目。 read.htmlとdatが同じドメインなら、read.jsがdatと通信しても大丈夫 っていう感じ。
パラメータを#で渡すと、リンクが全部紫色にならないかな?
192 :
tato :2006/07/28(金) 19:14:11 ID:+swShs5T0
2chの仕組みがまだ良くわからずに書いていますが、、、
ふと、思ったのですけれど、もしレガシーな仕組みを引きずらなくても良いなら、
.datファイルをとりにいくのではなくDB使うというのは無しなのですか?
1) hoge1.2ch.net/read.html#hogehoge (hoge1.2ch.net/read.htmlはキャッシュ)
2) static1.2ch.net/ajax.js (ajax.jsはキャッシュ)
3) hoge1.2ch.net/db (差分のみ)
1)から2)をロードして#hogehogeに対応するデータを3)から受けとり
ユーザーへはAjaxなレスポンスを返すとかの方がシンプルでいろいろできるかも。
>>191 #なら、カレントページが訪問済みになりますが、#hogeとかですよね?
195 :
ひろゆき@どうやら管理人 ★ :2006/07/28(金) 21:44:51 ID:???0 BE:201784-BRZ(4595)
>>196 まぁ,ime.st (ime.nu) で
onload = function(e) {
if (location.hash) {
document.links[0].href += location.hash;
document.links[0].firstChild.data += location.hash;
}
};
のような JavaScript 入れてもらえれば解決するかと.
もっとも,JavaScript 切ってあるとどうしようもないけど......
ブラウザ派急先鋒のまろゆきさん
>>197 これ入れてください
>>197 その要望はime.nu登場時から言われていたけれど、
ひろゆ子さんという人がよくわからない理由で却下していました。
388 名前: 心得をよく読みましょう 02/02/22 13:20 ID:zXPGfNV8
>>377 ↓こういうのを<body onload>かhtmlの最後に入れてください。
document.links[0].href+=location.hash
JavaScript使えるブラウザならIEだけじゃなくてたいてい通用します。
392 名前: ひろゆ子 ◆HRUNYAXA 02/02/22 13:30 ID:yVzdMBp6
javascriptをいれてしまうと、
googleにおこられそうで、、
801板のことをおいらにいわれてもわからんです。。
Konquerorでも文字バケバケっぽいですね。 にわかユーザだからよくわからんけど。
read.cgiの負荷を大幅に減らすことが目的なら、 WinIEだけを専用のスクリプトに飛ばせば目標達成かもしれないですね。 (それじゃあ面白くないって?)
ふと思った。2chユーザーのUA割合ってどうなってるんだろうな。と
204 :
root▲ ★ :2006/07/29(土) 01:15:55 ID:???0 BE:1824454-PLT(10016)
さてと。
>>193 を、dso あたりに仮に入れてみるとしたら、
.htaccess 的には、どうすればいいのかしら。
>>203 携帯とIEで八割は占めるんじゃないかな?
実用性を考えると100レスずつ表示ぐらいなら、ブラクラまでは行かないレベルになりそうかな?
Opera8.54から
>>193 を見てみたら初回取得時は正常に表示されるけど、
再読み込みもしくは再度開きなおすと読み込み中のまま先に進まなくなった。
>>204 どっちにしろ httpd.conf に入れなければならない設定もあるんで,
全部まとめて httpd.conf でもいいかも......
----------------------------------------------------------------------
LoadModule charset_lite_module libexec/mod_charset_lite.so
AliasMatch ^/(\w+)/dat-utf8/(\d+\.dat)$ /home/ch2xxx/public_html/$1/dat/$2
<Location /*/dat-utf8/*.dat>
SetOutputFilter XLATEOUT
CharsetSourceEnc CP932
CharsetDefault UTF-8
AddDefaultCharset UTF-8
Header append Cache-Control max-age=5
</Location>
Alias /test/bbs-utf8.cgi /home/ch2xxx/public_html/test/bbs.cgi
<Location /test/bbs-utf8.cgi>
SetInputFilter XLATEIN
CharsetSourceEnc CP932
CharsetDefault UTF-8
</Location>
<Files read.html>
AcceptPathInfo On
</Files>
<Files read.cgi>
AcceptPathInfo On
ForceType text/html
SetHandler default-handler
</Files>
----------------------------------------------------------------------
mod_charset_lite には
>>111 のパッチが必要.ビルド時には
>>114 をチェック.
# 今は read.html 中に JavaScript を直接記述してますが,実運用段階では分離する方向で.
>>207 Opera では JavaScript のエラーダイアログか何か出ますかね?
何かエラーが発生してるとすれば,どんなエラーなのかがわかれば対処しやすいですが.
# というか,sunos.saita.ma には mod_headers が入ってないので
# Cache-Control ヘッダを出力してませんが,そのせいかな......?
>>208 javascriptコンソールのエラーは
読み込み中。。。
http://sunos.saita.ma/read-js/test/read.cgi/operate/1153615149/l50 Event thread: mouseover
Error:
name: TypeError
message: Statement on line 254: Could not convert undefined or null to object
Backtrace:
Line 254 of User JS script
dt.innerHTML.match(/^(<[^>]*>)?(\d+)/);
Line 217 of User JS script
setResNumber(t.previousSibling);
At unknown location
[statement source code not available]
このような感じです。
>>209 どもども.しかし......
>Line 254 of User JS script
>dt.innerHTML.match(/^(<[^>]*>)?(\d+)/);
>Line 217 of User JS script
>setResNumber(t.previousSibling);
少なくとも,こちらが作った JavaScript には上記のようなステートメントは
含まれてないんですが(mouseover イベントも使ってないし),
どこで入り込んだんだろう......?
もしかして,壺か何かのスクリプトと衝突してる......?
> User JS script
212 :
root▲ ★ :2006/07/29(土) 13:27:00 ID:???0 BE:4104959-PLT(10017)
>>208 mod_charset_lite って、
Apache 2.2 以降じゃないとだめなんでしたっけ。
あー、すいません。
テストするときにはUSER.JSを切っていたんですが、
切ってなかったときのエラーログのようです。
それ以外ではどんなエラーも出ていないようですが、再読み込みをすると
>>57 のIEの時のようになってしまいます。
>>212 2.0 と 2.2 のモジュールは基本的にソースレベルでは互換性があるので平気かと.
(ただしバイナリレベルの互換性はない)
>>213 なるほど......キャッシュの問題なんですかねぇ.
(sunos.saita.ma では設定不能ですが)Cache-Control 等のヘッダで改善するかどうか......
215 :
root▲ ★ :2006/07/29(土) 13:50:24 ID:???0 BE:3830876-PLT(10017)
>>214 > 2.0 と 2.2 のモジュールは基本的にソースレベルでは互換性があるので平気かと.
> (ただしバイナリレベルの互換性はない)
なるほど、それならいけそうですね。
dso を 2.2 系にするといろいろめんどいので(read.cgi バイナリとか)。
今日はもうちょっとしたらお出かけなので、
早くても今夜ぐらいあたりからかなと。
>>111 のパッチを 2.2.3 向けに更新しますた.
217 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 15:03:40 ID:???0 BE:283695-BRZ(4596)
>>199 どういうふうに使うのか全然わかってなかったり。。。
>>217 ime.nu(って今落ちてますか?)の <head>〜</head> 中に
<script type="text/javascript" defer><!--
onload = function(e) {
if (location.hash) {
document.links[0].href += location.hash;
document.links[0].firstChild.data += location.hash;
}
};
//--></script>
って入れてもらえばいいかと.
すれ違いだけども、ime.(nu|st)、落ちまくりなのをなんとかしてほしかったり。 2ちゃんでリダイレクトを用意したりはしないのかしら。
>>218 >>200 当時の管理人のひろゆ子さんはjavascriptに否定的だったけど、
今の管理人のひろゆきさんはOKしてくれそうですね。
222 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 16:07:15 ID:???0 BE:113663-BRZ(4596)
あいあい
★下さい
224 :
◆TWARamEjuA :2006/07/29(土) 17:03:06 ID:5tGYbn9Q0 BE:1961429-BRZ(1019)
225 :
動け動けウゴウゴ2ちゃんねる :2006/07/29(土) 19:07:06 ID:RoQ9c9iw0
これは良いエセAjaxブラウザですね。なかなかいいですね。 でも若干読み込みが遅い気がする・・・
このスレ見てテキストのDATはXMLで保存するに限ると学習した
難しい話は良く判らないけど、このプロジェクトは 普通のブラウザを2ch専ブラ化するっていう認識で OKなのかな? そうすると、広告を見る人が居なくなる予感…… ひろゆきはそれでいいの?
229 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 20:29:41 ID:???0 BE:226894-BRZ(4596)
とりあえずキャップ下さいですよ
これが軌道に乗った暁にはJs周りの脆弱性が見つかるたびに祭りになる その中で名をあげるんだ
233 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 20:36:46 ID:???0 BE:126645-BRZ(4596)
おぉ、ほんとだ動いてた。動いてた。 すげー。
234 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 20:38:10 ID:???0 BE:95235-BRZ(4596)
おお、IEだと2回でるね。 Sylera(Gecko系)だと普通に1回だわ。
236 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 20:52:12 ID:???0 BE:76526-BRZ(4596)
いやぁ、javascriptはとんとわからんですよ。
ブラウザごとに処理変えればいいんじゃない
238 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 21:04:11 ID:???0 BE:51124-BRZ(4596)
239 :
root▲ ★ :2006/07/29(土) 21:09:39 ID:???0 BE:1915373-PLT(10017)
UA を見るのかな?
UA偽装されたらひとたまりもないな
ヒント:JavaScriptの返すUA vs HTTPヘッダのUA
出来る処理と出来ない処理判定繰り返すのが定番かな
こうこくgaippaiあるからー onloadのたいむんぐがむちゃくちゃなよかんです♪
>>238-240 とりあえずUAで処理分ければいいんじゃないかね
偽装するような奴が普通のブラウザで見るとは考えにくいから
>>243 の書き込み失礼しました・・・
んで、IE6だと document.links[0].firstChild.data += location.hash; をコメントアウトしても
IE6だと表示もきちんと?#fefefefeが表示されますね
不思議です。
IEのバグの予感・・・ とりあえずブラウザ判別なんて難しいことやんらなくても、 <script type="text/javascript" defer><!-- onload = function(e) { if (location.hash) { document.links[0].href += location.hash; document.links[0].firstChild.data += location.hash; } }; //--></script> を <script type="text/javascript" defer><!-- onload = function(e) { if (location.hash) { document.links[0].firstChild.data += location.hash; document.links[0].href += location.hash; } }; //--></script> にすればOKなはず。
247 :
ひろゆき@どうやら管理人 ★ :2006/07/29(土) 21:34:41 ID:???0 BE:252285-BRZ(4596)
DOMとかイベントハンドラとかそういうもの
href書き換えると中身まで書き換えるっていったい何してくれてるんだろIE
わーい酔っ払ってるけどひろゆきの役に立ったと♪
>>247 IEのばぐなんできにしないでねー
>>249 中身と属性が一致するちょきのみ勝手に両方書き換える予感
IE6はセキュリティといい市場2番目に最悪なブラウザな気がしなくもない
IEとFirefoxで正常動作を確認したけど他のブラウザではどうなの?
253 :
紅玉 :2006/07/29(土) 21:50:42 ID:FhPqEwUW0
Netscape Communicator4.8も愛用のFuuunも死亡するやもしれないと居う危機感を抱いています。
実際
>>193 のURLを読み込もうとしたら
読み込み中。。。
1 :[読み込み中。。。]:[読み込み中。。。]
[読み込み中。。。]
0 kB [ 2ちゃんねる 3億PV/日をささえる レンタルサーバー \877/2TB/100Mbps]
この状態から進みませんでした。
◆◇パンサー導入してもNetscape 4.x ◇◆ 第5章
http://pc7.2ch.net/test/read.cgi/mac/1068312522/l50 でも危機感が募っています。
ネスケ4じゃさすがにAjax関係は対応してないんじゃないかな
イメヌもread-jsも重いなぁ スペック低いとキツイ。専ブラだからいいけど
追加です。 Internet Explorer5.1.7 iCab2.9.9a iCab30Beta382 マカエレ1.0x23 全滅 wamcom-131-macos9-20030723 かろうじて対応
最悪、XMLHttpRequestが使えればどうにかなる。 使えないなら従来のread.cgiって感じじゃね。
とにかくキャップが欲しい
ひろゆきポイントくれくれ
お......いない間に ime.nu の方は事が進んでたのね.各位乙ですた. で,dso でやる時はフィルタ通した dat を mod_cache でキャッシュってのもやって, さらに黒山羊対策の実験もしてうまくいくなら雪だるまにフィードバック,ってのはどうでしょう ......と思ったけど,mod_cache 使うなら 2.0 系より 2.2 系の方がいいんですよね.う〜む......
>>257 ぶっちゃけ、どうしようもない時だけread.cgiに飛ばすだけてもcgi稼働率は下がりそうだからなぁ。
先生!久しぶりに運用情報に来てみたら面白そうなスレッドを見つけました。 試せるレベルくらいまで進んでますか?
263 :
ひろゆき@どうやら管理人 ★ :2006/07/30(日) 17:25:33 ID:???0 BE:89227-BRZ(4603)
ヽ=熊=/…なんかとまっちゃったから (・(エ)・) ひろゆきに10ポインツあげておこう。 <| |つI . | |
しゃぶれよ
関連キーワードは ---------------------------------------------------------------------- var keywords = ["キーワード1", "キーワード2", "キーワード3"]; ---------------------------------------------------------------------- のような形式で返してくれる I/F があると read.html にはふさわしいのかも. もっとも,これはそのうちどうのこうのって話があったっけ......
267 :
ひろゆき@どうやら管理人 ★ :2006/08/01(火) 09:40:57 ID:???0 BE:151564-DIA(30035)
( ̄ー ̄)ニヤリッ
ほほう
269 :
root▲ ★ :2006/08/01(火) 11:40:03 ID:???0 BE:1459182-PLT(13231)
どうのこうの、ぼちぼちってかんじですかね。 しかし8月は私の本業が黒焦げ状態だという噂も、、、。 ちなみに8月の夏期休暇はありません(とれません)。むぎゅー。
270 :
紅玉 :2006/08/01(火) 11:50:20 ID:Jmc1YKlo0
271 :
root▲ ★ :2006/08/01(火) 11:52:12 ID:???0 BE:2280555-PLT(13231)
たぶん UA とかで調べて、NN 4.x だったらレガシーな read.cgi にフォールバックするとか、 そういう動作になるんでしょうね。 つまり、JavaScript が動かないクライアントと同じ動作になると。
2chもajax化するのかあ 将来的に専用ブラウザみたいなこともできるのかな IDポップアップとか画像プレビューとか
安定してきたころにソースをパクろう
274 :
動け動けウゴウゴ2ちゃんねる :2006/08/01(火) 13:30:45 ID:tT304PHv0
Ajaxか なかなか面白い試みじゃん
>>275 うほ。インラインサムネイル! 感動しますた
>>270 Winなら8以降かSeaMonkeyかFirefox、MacならSeaMonkeyか
Firefox使えと伝えて置いて下さい。
画像は面白いけど、実際入れるとなると微妙ですねえ(2chがプロキシ建ててくれるならともかく。)
そういえばそうか......<画像
しばらくしたら外しとこう<画像インライン化 それまでは一時的なデモンストレーションってことでw
SunOSちゃん、なんて恐ろしい子...
283 :
ひろゆき@どうやら管理人 ★ :2006/08/01(火) 20:59:42 ID:???0 BE:265267-DIA(30037)
[エラー] 1 :[エラー]:[エラー] Not Found
[ここ壊れてます] 1 :[ここ壊れてます]:[ここ壊れてます] [ここ壊れてます]
286 :
外野ァァン :2006/08/01(火) 21:03:03 ID:trcLaVqn0
せっかくのヒット作なのに
あれ?リロードしたらこうなった。
おまwww
290 :
紅玉 :2006/08/01(火) 21:06:13 ID:Jmc1YKlo0
>>277 >MacならSeaMonkeyかFirefox使えと伝えて置いて下さい。
これはMacOSXの場合の話ですね。
>>270 ですが、270のスレはMacOS9の人の為の物です。
しかし、
>>256 で示したようにMacOS9でも動作するwamcom-131-macos9-20030723
が動作しますし、
>>271 でrootさんが示されたようにNetscape Communicatorでも
大丈夫なようにしてくれそうですので取りあえず心配しなくて良いかも知れません。
Mac専用の専ブラのマカー用もまだしばらくはOS9に対応していてくれそうですし。
292 :
紅玉 :2006/08/01(火) 21:10:53 ID:Jmc1YKlo0
SunOsは才能の宝石箱や〜
>>283 つまり、実際にdatが取得できないとテストとしての意味がないということですかな?
まぁ,そのうちむむむさんが dso 鯖に入れてくれるんじゃないかと......
296 :
ひろゆき@どうやら管理人 ★ :2006/08/01(火) 21:43:36 ID:???0 BE:50742-DIA(30037)
Personalizedがあったらいいよなあ、と夢見
>>290 Classic環境のNetscape 7.02でも文字化けしてダメですた。
一応参考までに。
これはすごい
画像インライン化機能は外しますた......
で,
>>298 のような文字化けなんかもヘッダの設定で何とかなるかどうかですね.
そのあたりも mod_headers の使えない sunos.saita.ma だとアレなんで,
dso に入れてもらったら確認ってことで......
301 :
root▲ ★ :2006/08/01(火) 23:38:05 ID:???0 BE:1824454-PLT(13231)
>>295 例えば、SunOS さんが dso サーバに入ってみるとか。
# 今日は「体を休める日」につき、作業は基本的にここまでで。
>>301 えーと,1U の鯖に入れるようになるには相当ダイエットしないと(ry
ってのはともかく,入れるようになるなら確かにそれも一つの方策かも......
304 :
root▲ ★ :2006/08/02(水) 00:04:00 ID:???0 BE:1824645-PLT(13231)
PC たたむ前に見たら、早くもご本人からのレスが、、、。
>>302 > ってのはともかく,入れるようになるなら確かにそれも一つの方策かも......
方策ですね、えぇえぇ、方策ですとも。
というか、入れないなら、どうすれば入れるようになるかの方策を考えるのが(りゃ。
いかがでしょうか。> 管理人
これってつまり、
>>267 ということでいいのかしら。
…今日はここまで。おやすみなさい。
>>303 かわいいですね.でも 1U だとまだまだ......
>>304 ともあれ,乙です&お休みなさい.
# てか,何が起こるのかな......ドラえもんが登場して鯖に入れるように
# スモールライト渡されるとか......
つ SunOs ★
307 :
ひろゆき@どうやら管理人 ★ :2006/08/02(水) 01:44:23 ID:???0 BE:57233-DIA(30038)
>>304 いいんでないすかね。
( ̄ー ̄)ニヤリッ
( ̄ー ̄)ニヤリッ
>>307 どうか眠らせてあげてくださいです。。。
「 ̄ `ヽ、 ______
L -‐ '´  ̄ `ヽ- 、 〉
/ ヽ\ /
// / / ヽヽ ヽ〈
ヽ、レ! { ム-t ハ li 、 i i }ト、
ハN | lヽ八l ヽjハVヽ、i j/ l !
/ハ. l ヽk== , r= 、ノルl lL」
ヽN、ハ l ┌‐┐ ゙l ノl l
ヽトjヽ、 ヽ_ノ ノ//レ′
r777777777tノ` ー r ´フ/′
j´ニゝ l|ヽ _/`\
〈 ‐ _,,..,,,,_ lト、 / 〃ゝ、
〈、ネ./ ;' 3 `ヽーっ.lF V=="/ イl.
ト |l ⊃ ⌒_つ とニヽ二/ l
ヽ.|`'ー---‐'''''" 〈ー- ! `ヽ. l
|l夜は眠い lトニ、_ノ ヾ、!
|l__________l| \ ソ
>>271 それは考え方が逆だべ。
> たぶん UA とかで調べて、NN 4.x だったらレガシーな read.cgi にフォールバックする
UA とかで調べて、動作に問題ないとわかってるものなら read.html(?) に行く
にしないと。
と、以前の root 氏なら考えたと思うんだが。
むにゃむにゃ。
>>307 了解です。niyr
>>311 オプトアウトではなく、オプトインですか。
つまり、そのぐらいのものであると。< JavaScript
う、レスアンカーの番号が。 ま、いっか。 今は二度寝するです。ぐーぐー。
>>310 負荷対策も兼ねてるのだから、マイノリティの方がコスト高くなるのが当然では
これは人大杉のときでも読めるようにするのかな。
CGI叩かないなら人多杉っていう概念そのものがなくなるんじゃね?
まぁ,メジャーなブラウザを一通りカバーすればシェア的には9割以上は逝くでしょうし. 特に JavaScript のようなものは,作る立場からしても,挙動のよくわからない マイナーなものまで対処するより,メジャーなところを押さえておけばいいという方が 遙かに楽ではあります......ってことで,動作確認ができたブラウザを JavaScript 版に回すホワイトリストに入れるって形にすればいいかと.
セガBBSはサターンモデムでもチェックしていたんだろうな。
NN4以下なんて考慮するだけ資源の無駄。
320 :
紅玉 :2006/08/02(水) 21:49:38 ID:8QIZMHJ50
>>319 私が試しましたのはベータ版では無い2.9.9です。
“iCab3.0Beta382”では激遅ながら表示するのは確認しましたが未だ開発途上版ですので
この先どう変わるかもわからないので報告いたしませんでした。
また、“wamcom-131-macos9-20030723”はMozilla 1.3.1 をベースに安定性と、
セキュリティーを向上させるために数百のパッチ を当てた安定志向独自ビルドですので一概に
Mozillaと一緒くたにしてはいけないと考え、別にしています。
ちなみに“iCab3.0Beta382”と“wamcom-131-macos9-20030723”では
“wamcom-131-macos9-20030723”の方が早いです。
>>310 それじゃread.cgiをすべてのクライアントで一度は叩いちゃうじゃない。
負荷対策にならない。
つーかここまで誰も話を持ち出してないのが不思議だがレス番号指定はどうする
つもりなの
現状ではCPUが貴重で転送料をじゃぶじゃぶ使った方が引き合うのかな
いや、Webサーバーの機能使ってread.htmlかread.cgiかを選べるのよ。
324 :
319 :2006/08/02(水) 22:30:26 ID:3vaKMYPP0
>>320 いや、
>>256 で全滅リストにicab3.0が入っていたんで。。。
ここでmozillaというのは1.3.1とwamcomで同じ結果だったからでつ。
もちろん、icabよりmozillaの方が快適でつ。
単なる動作報告のつもりだったんだけど。。。
.cgiにこだわらなければmod_negotiationも使えそうに思えるが、使えないや。
スレ違いですまんけど、
>>325 GZIPをなしにする方が、ありよりも負荷が減るんじゃないの?
>>327 確かにそうかも,ってか圧縮なしなら sendfile() 一発だから
遙かに効率的ではあります.
ちょうど8月だし、毎年恒例の「2ちゃんねる閉鎖危機」を演出しながら JavaScript版を導入していくのはどうだろう。 ・サーバーの負荷で2ちゃんねる閉鎖の危機! ・次々と閉鎖していく掲示板 ・そこでJavaScript導入、一気に負荷が16分の一に! ・感動のFLASH作成 ・BGM:蛍の光
何気に運営来て見たら面白いことになってるし サンプルすげー 管理人の気まぐれをここまで形にするなんて あんた達すごいよ感動した
332 :
◆Puttyan8hs :2006/08/03(木) 02:05:22 ID:GfgoNoFE0 BE:155088364-2BP(239)
ここにいる人たちのスキルってすごいって感じた 自分は最近触れたばっかだからわかんないけど
アドレスバーで移動ができんな
うーむ、スクリプトが何らかの理由によりエラーになるとスレも読めなくなるのか・・・ 例外処理である程度は回避可能なのかな
レス番表示のあと全部を押すとフリーズしたみたいになるなあ しかも戻るでレス番表示に戻れない
336 :
紅玉 :2006/08/03(木) 11:40:38 ID:necJHHiA0
>>324 > いや、
>>256 で全滅リストにicab3.0が入っていたんで。。。
すんません。たぶん激重だったか何かでダメだと判断したんです。
location.hashの変更ってブラウザで検出できないの? そんなことないと思うんだが
タイマーで監視するとか
>>338-339 read.html までが同じで # 以降だけを変更した場合,
ページを再ロードせず # 以降で指定された id (またはアンカー)を探し
その場所に移動する,という挙動になるようです.
つまり現在表示中のページ内での移動だけが行われるということで,
load イベントは発生しないようです.そこで,「全部 1- 101- 201- 301- ...」
等のリンクについては onclick イベントハンドラを使って細工してるんですが,
ロケーションバーから直接入力された場合はしょうがないような......
setInterval() とか使ってロケーションバーの変更をポーリングするってのは
あまりに効率が悪すぎるし(どれだけのユーザがそういう使い方するかわからないのに
無駄に CPU パワーを消費するだけのような気がするし).
「そういう使い方する場合はロケーションバーに入力後リロードして下さい」
ってことにした方がずっと単純明快という気がします.
>>340 >setInterval() とか使ってロケーションバーの変更をポーリングする
方法のもう一つの問題点はページ内リンクですね.>>nnn で指定したレスが
現在表示中のページ内にある場合は,再レンダリングせずその場所に
移動するようになってますが,前述のようなポーリングをすると,
そのレスだけを表示するような再レンダリングが発生してしまいます......
342 :
動け動けウゴウゴ2ちゃんねる :2006/08/05(土) 12:29:27 ID:GyU8gfrP0
VIPのread.cgiを早くこれにしてくれw
343 :
紅玉 :2006/08/08(火) 18:16:36 ID:pQC/z9+S0
みんな夏休み進行で一時急死
むむむさんは8月休み取れないとか言ってたような気がするけど, 短いとはいえ休みが取れたようで,めでたしめでたし. で,read.html はとりあえず dso に突っ込んだら,動作確認とか ブラウザ振り分けの RewriteRule 考えるとか,そんな感じかな.
345 :
ひろゆき@どうやら管理人 ★ :2006/08/10(木) 22:21:08 ID:???0 BE:177247-DIA(30600)
とりあえず、何がネックなんでしたっけ?
首がネックです。
ピートロってうまいよね
レスもネックです。
どうせdatファイル全部取得しちゃうんだから、無理して全部表示しなくても、 少しずつ表示すれば、ブラウザが重いってのは解消されるのでは?
>>345 ネックというより,実際 dso でテストできる状態になる(read.html を
入れられる状態になる)のを待ってるところかな,と.
大きな問題として,Shift JIS のままの dat だと IE で 304 Not Modified が
返ってきた場合文字化けするって問題はあったんですが,mod_charset_lite で
on the fly に UTF-8 に変換することでそれは解決できるかな,と.
あと,Opera とか Mac とか,その辺の自分では直接動作確認できないブラウザで
いくつか不具合報告はあったようですが,そのあたりは Cache-Control 等の
ヘッダ設定で回避できるかどうか,ってのを確認したいところですが,
それも dso 待ちってところで......
ネックまっしぐら
偉大な管理人からのありがたい指令に基づき、 今日はPCを開かずに休もうと思うのです。はい。
354 :
◆TWARamEjuA :2006/08/10(木) 23:02:55 ID:Mhv/c0uw0 BE:1633853-BRZ(3010)
流れに任せるのがVIPの流儀。
1GB 超達成w 立ち上げ直すか...... PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP 20637 nanashi 1001M 395M sleep 49 0 4:03:15 20% firefox-bin/5
356 :
ひろゆき@どうやら管理人 ★ :2006/08/11(金) 00:27:45 ID:???0 BE:100782-DIA(30601)
dso でテストできる状態って具体的には、 何が必要なんでしょう?
>>356 そんな事より、今のじっぷらを何とかしてくれ
テストする人はテスト環境いじれるのかしら
>>356 1. むむむさんかひ(ryさんが read.html(やそれに付随する *.js)を
dso に入れる.さらに,httpd に mod_charset_lite を組み込む(要パッチ).
2.
>>301-307 を進めて頂ければ私が(ry
360 :
ひろゆき@どうやら管理人 ★ :2006/08/11(金) 01:33:44 ID:???0 BE:151564-DIA(30601)
dsoのサーバ名ってどこなんでしょう?
本名:tiger506.maido3.com 芸名:dso.2ch.net IP アドレス:206.223.152.30
ひろたん触る気満々
やっちゃえやっちゃえ。
使いにくいからデフォになるのは嫌だなあ
∧_∧ + (0゜・∀・) ワクワクテカテカ (0゜∪ ∪ + と__)__) +
おれのミャンマー、ヤンゴンがひろあきに蹂躙されるうううう
369 :
ひろゆき@どうやら管理人 ★ :2006/08/11(金) 01:58:23 ID:???0 BE:454098-DIA(30601)
メールしましたー。
>>369 受け取りました.ではぼちぼちと......
http://dso.2ch.net/test/read.html を置きますたが,一般ユーザ権限で不能なことがあるので,現状ではまだ使えません......
>>114 の点については APU_HAVE_ICONV が 1 なので Ok.
で,mod_charset_lite.so はあるものの httpd.conf で組み込まれてない
(さらに,どちらにしろ
>>111 のパッチが当たってないと思うのでこのままでは使えない),
さらに
>>208 のような設定も httpd.conf に必要,ってことで......
# ただ,直接 read.cgi に read.html を割り当てるのでなく,
# User-Agent を見て振り分けるなら
>>208 も修正が必要ですね.
372 :
root▲ ★ :2006/08/11(金) 11:12:03 ID:???0 BE:1824645-PLT(15631)
まずは、 ( ̄ー ̄)ニヤリッ で、いいのかな。よくわかりません><. そんなわけで、権限が必要な作業は、 本日以降たんたんと、ということで。
373 :
◆IDaU21y6wI :2006/08/11(金) 12:22:20 ID:pEPVd2RI0 BE:71855093-BRZ(7000)
たんたんめーん
>>111 のパッチを改めて更新しますた.で,httpd.conf に入れる設定はこんな感じか.
----------------------------------------------------------------------
LoadModule charset_lite_module libexec/apache2/mod_charset_lite.so
<Location /*/dat-utf8/*.dat>
SetOutputFilter XLATEOUT
CharsetSourceEnc CP932
CharsetDefault UTF-8
CharsetOptions NoImplicitAdd IgnoreIlSeq
AddDefaultCharset UTF-8
Header append Cache-Control max-age=5
</Location>
<Location /test/bbs-utf8.cgi>
SetInputFilter XLATEIN
CharsetSourceEnc CP932
CharsetDefault UTF-8
CharsetOptions NoImplicitAdd IgnoreIlSeq
</Location>
<VirtualHost ...>
# ServerName dso.2ch.net のところ
AliasMatch ^/(\w+)/dat-utf8/(\d+\.dat)$ /home/ch2dso/public_html/$1/dat/$2
Alias /test/bbs-utf8.cgi /home/ch2dso/public_html/test/bbs.cgi
</VirtualHost>
----------------------------------------------------------------------
ブラウザ振り分けの RewriteCond / RewriteRule なんかは .htaccess でもよさそうということで.
375 :
root▲ ★ :2006/08/11(金) 15:00:19 ID:???0 BE:2553874-PLT(15631)
>>374 どもです。
時間とれ次第、やるです、やるです。
376 :
◆TWARamEjuA :2006/08/11(金) 21:19:14 ID:0PwNZvzG0 BE:2614638-BRZ(3010)
さてと。
378 :
root▲ ★ :2006/08/12(土) 01:21:25 ID:???0 BE:2736656-PLT(15631)
んで、入れようと思うのですが、、、。
dso は諸事情により、Apache 2.0 系を使いたいのです。
ということで
>>111 のパッチを、Apache 2.0.59 用も出してもらえるとうれしいです。
あと、dso サーバでは、read.html を read.cgi として動かそうと思っているので、
その設定についても、
>>374 に入れておいてもらえるとうれしいかなと。
379 :
root▲ ★ :2006/08/12(土) 01:24:32 ID:???0 BE:3831067-PLT(15631)
…って、mod_charset_lite って、Apache 2.0 系にはないのかしら。 うーむ。だとすると、ex11 あたりのほうがいい? < テスト環境
>>378 >ということで
>>111 のパッチを、Apache 2.0.59 用も出してもらえるとうれしいです。
というか,基本的に 2.0 系と 2.2 系ではモジュールのソースは互換性があるんで,
単に 2.2.3 の mod_charset_lite.c を持ってくればいいのかと.
http://svn.apache.org/repos/asf/httpd/httpd/tags/2.2.3/modules/filters/mod_charset_lite.c これにパッチ当てて,単純に apxs でビルドすれば Ok と思いますんで.
>dso サーバでは、read.html を read.cgi として動かそうと思っているので、
まぁ RewriteRule は httpd.conf でも .htaccess でもどっちでもいいかとは思うんですが
RewriteRule /?read\.cgi(?:/(.*))?$ /test/read.html#$1 [R,NE]
read.html は PATH_INFO 形式でも受け付けますが(さらにいうと QUERY_STRING 形式も可)
location.hash 形式推奨ってことで上記のルールでは external redirect にしてます.
もし,external redirect にせず PATH_INFO のままで扱うってことなら
RewriteRule /?read\.cgi(/?.*)$ /test/read.html$1
381 :
root▲ ★ :2006/08/12(土) 21:46:01 ID:???0 BE:5837388-PLT(15631)
382 :
動け動けウゴウゴ2ちゃんねる :2006/08/13(日) 01:51:20 ID:4xdXhh4p0
質問・雑談スレッドに書いたんですが運営の人が降臨しなさそうなのでこちらに書かせて頂きます 運営の人に教えて答えてもらいたいんですけど 2ちゃんねるのTOP→掲示板から入ると2ペインで片方が板一覧のまま残り 何回かスレを開いたり書き込むと消えるけど、プログラム的にはどのような仕組みになってるんですか?
少なくともここで聞くことじゃないな。
色々なところで同じことを聞く行為は マルチポストと呼ばれ忌み嫌われております 質雑に帰れ
385 :
動け動けウゴウゴ2ちゃんねる :2006/08/13(日) 02:02:29 ID:4xdXhh4p0
>>383 聞くべきスレッドが見当たらなかったので
>>384 質雑に運営の人は来んだろ、ただ聞き流されるだけ
正直JavaScriptで動かそうとしてる馬鹿は死ねばいいと思う ってレスをどっかでしたんだがな… 誰か拾ってきてくれ
>クライアントサイドスクリプトに処理を集約しようとしてる馬鹿は正直死ねばいいと思う。 > >宣撫らのこととか考えてんのか?Safari、Opera、FireFoxのこと考えてるのか? > >自分でろくにJavaScriptの許可不許可を設定できない奴のこと考えてるのか? > >壷やらモリタポやらで膨大な、幅広いユーザーから金とっといて、考えてないってことはないよな? > >ん? この前誰かOperaでろくに表示されないようにBe板作り変えたときのレスだ 互換性ぐらい考えろよな
388 :
root▲ ★ :2006/08/13(日) 02:46:35 ID:???0 BE:730324-PLT(15631)
管理人の言葉は、 「長いものには巻かれましょう」 だったはず。 ソースは、どこだったかな。 いつだったかの、2ちゃんねる公式ガイドだったと思うです。
まぁ,実用段階では User-Agent による振り分けで,read.html に対応できないブラウザは 従来版の read.cgi に振るようになるかと. あと,自分自身が Firefox ユーザなんで Firefox には対応するように作ってます. Opera とかその辺は自分では直接動作確認できないものの,可能なら対応できるように したいと思いますが,対応不能なら上記のような振り分けで従来版の read.cgi に振ることになるかと.
390 :
root▲ ★ :2006/08/13(日) 02:55:41 ID:???0 BE:1095326-PLT(15631)
さて、お待たせしましたが、いよいよ設定するです。 寝るまでに、dso で read.cgi という名前で dso で動かすことができて、 SunOS さんが開発をすすめられるようにしようかと。
391 :
動け動けウゴウゴ2ちゃんねる :2006/08/13(日) 02:56:09 ID:4xdXhh4p0
+ + ∧_∧ + (0゚・∀・) ワクワクテカテカ (0゚∪ ∪ + と__)__) +
393 :
root▲ ★ :2006/08/13(日) 02:57:24 ID:???0 BE:4104195-PLT(15631)
394 :
root▲ ★ :2006/08/13(日) 02:57:45 ID:???0 BE:1459182-PLT(15631)
あ、しまた。 運営の人じゃないんだった。ごめんなさい。
>>389 そうか。
俺は宣撫らだから別に困らないけど…開発するのならOpera落としてテストするべきだよと一言。
その辺がめんどくさいのなら最初から携わるなともう一言
不許可の場合も<noscriptで飛ばすとか何とかしてちゃんと対応汁
とりあえず頑張ってください
文句が出てから対応するという2chメソッドでしょう
397 :
動け動けウゴウゴ2ちゃんねる :2006/08/13(日) 03:01:50 ID:mm6e11yz0
運営のフリをするrootたんみっけ!
399 :
root▲ ★ :2006/08/13(日) 03:06:57 ID:???0 BE:1915373-PLT(15631)
mod_charset_lite + patch の組み込みはできた模様。 これから、httpd の設定へと。
400 :
382 :2006/08/13(日) 03:09:58 ID:4xdXhh4p0
>>398 2ch仕様なんてググっても分かるはずがないだろ
運営じゃなくて誰でも良いから答えてくだしい
>>400 プログラム関係ない
)、._人_人__,.イ.、._人_人_人
<´ 天狗じゃ、天狗の仕業じゃ! >
⌒ v'⌒ヽr -、_ ,r v'⌒ヽr ' ⌒
// // ///:: < _,ノ`' 、ヽ、_ ノ ;;;ヽ //
///// /:::: (y○')`ヽ) ( ´(y○') ;;| /
// //,|::: ( ( / ヽ) )+ ;| /
/ // |::: + ) )|~ ̄ ̄~.|( ( ;;;|// ////
/// :|:: ( (||||! i: |||! !| |) ) ;;;|// ///
////|:::: + U | |||| !! !!||| :U ;;; ;;;| ///
////|::::: | |!!||l ll|| !! !!| | ;;;;;;| ////
// / ヽ::::: | ! || | ||!!| ;;;;;;/// //
// // ゝ:::::::: : | `ー----−' |__////
402 :
root▲ ★ :2006/08/13(日) 03:16:59 ID:???0 BE:5837388-PLT(15631)
まずは、dso サーバだけ、 従来のは read-dso.cgi という名前で動くようにした。
405 :
root▲ ★ :2006/08/13(日) 03:34:44 ID:???0 BE:2919348-PLT(15631)
406 :
root▲ ★ :2006/08/13(日) 03:35:35 ID:???0 BE:3192375-PLT(15631)
>>404 動いたようですね。
しかし、これはすごいです。
今日は記念日かな。
407 :
root▲ ★ :2006/08/13(日) 03:37:46 ID:???0 BE:2554447-PLT(15631)
うぉー、書き込みもできるのか。 これはなかなか。
408 :
root▲ ★ :2006/08/13(日) 03:39:12 ID:???0 BE:547632-PLT(15631)
あ、書き込めた・・・
dso の bbs.cgi は古くてランクとポイントの対応も他の鯖と同一ではないかも?
すげえ どうやってるのか分からないけど部分取得にも対応してるのか で、バグ報告 クッキー確認のダイアログに同意してもその後書き込まれないで止まってしまいます
412 :
root▲ ★ :2006/08/13(日) 03:43:18 ID:???0 BE:2189838-PLT(15631)
>>410 なるほど。
とりあえず、最新の bbs.cgi に入れ替えてきます。
今のやつは、リネームして保存しておくです。
413 :
root▲ ★ :2006/08/13(日) 03:45:00 ID:???0 BE:2462393-PLT(15631)
414 :
root▲ ★ :2006/08/13(日) 03:46:42 ID:???0 BE:2919348-PLT(15631)
>>411 bbs.cgi を更新したんで、
もう1回試していただけると。
415 :
411 :2006/08/13(日) 03:47:31 ID:amX6z+gg0
>>412 のおかげか、ちゃんと書き込めるようになりました。
416 :
root▲ ★ :2006/08/13(日) 03:50:26 ID:???0 BE:3284249-PLT(15631)
すごいっすね。クッキーというか前の結果もちゃんと残る? でも、本文欄のは、いろんな意味で残さないほうがいいですね。
これって実装近い?
>>416 >でも、本文欄のは、いろんな意味で残さないほうがいいですね。
投稿成功時に本文欄をクリアするようにしてみますた.
419 :
root▲ ★ :2006/08/13(日) 03:56:10 ID:???0 BE:5745997-PLT(15631)
>>418 おつです。早いすね。
あとは、さくさく進めていけそうな感じ?
乙ですお ★☆スレッドストッパー試験所inみゃんまー6☆★ 1 :高瀬川@師匠闇神様 ◆uEP6Z9AQTI :2006/07/01(土) 22:52:00 ID:??? ・ ・ ・ ●age!!こそが真の勇者 ●ちゃんと寝ましょう。 前スレ ★☆スレッドストッパー試験所inみゃんまー6☆★ undefined ~~~~~~~~~~ ↑ ミスかな…
421 :
root▲ ★ :2006/08/13(日) 03:59:42 ID:???0 BE:1459744-PLT(15631)
http://dso.2ch.net/test/read-dso.cgi/myanmar/1151761920/ にて末尾に
Hello 2ch !!
ERROR NO=0
maxLA=16.000000
LA=0.571777
2006/08/13 03:59:02 日本時間が取れるようになりました。
/myanmar/1151761920/ PATH_INFO
(null) QUERY_STRING
/home/ch2dso/public_html/test/ cwd
/home/ch2dso home
dso.2ch.net server name
ita[myanmar]
key[1151761920]
res[]
dat[/home/ch2dso/public_html/myanmar/dat/1151761920.dat]
where[1]
size[66260]
time[2066833856] LastModifyed 今回は無しの方向で、
lineN[535]
subject[★☆スレッドストッパー試験所inみゃんまー6☆★]
st[1]
to[534]
ls[0]
nf[0]
xxx[]
424 :
root▲ ★ :2006/08/13(日) 04:02:09 ID:???0 BE:1459182-PLT(15631)
>>422 これは、そういうもんですね。
デバッグ用出力ということで。
でもって <noscript></noscript>をヘッダにぶちこんで metaでread-dso.cgiに飛ばす。metaで飛べない人のためにもちアンカー設置
426 :
root▲ ★ :2006/08/13(日) 04:09:27 ID:???0 BE:4377986-PLT(15631)
>>425 そのへんは、これからぼちぼちかな。
今日はそろそろ、新しい ThinkPad が呼んでいるみたい。
428 :
root▲ ★ :2006/08/13(日) 04:10:32 ID:???0 BE:3831067-PLT(15631)
read-dso.cgi というのはちとださいかな。 read.so にしておこう。
429 :
root▲ ★ :2006/08/13(日) 04:12:38 ID:???0 BE:2189838-PLT(15631)
>>428 done.
これで、JavaScript がだめぽな場合、read.so にフォールバックするかんじで。
readso.cgi の方が見慣れてるような気がしなくもないww 寝る おっ おっ おっ カッチン カッチン . (^ω^ ≡^ω^)彡 ミ . ( ∪ ∪ \†/ と_)_) .△
>>427 なるほど...... Opera の String.replace() の挙動がどうなってるか,ってあたりかな......
>>425 いいアイデアかも知れませんが,静的な HTML ファイルでは
指定された板・スレッドキーは取得不能なので,直接 read.so に
ジャンプ可能にするのは困難かも...... 説明ページなどを別途作って
そちらにリンクするとか,そんな感じになるかも......
432 :
root▲ ★ :2006/08/13(日) 04:16:58 ID:???0 BE:912252-PLT(15631)
>>431 > 説明ページなどを別途作って
> そちらにリンクするとか,そんな感じになるかも......
今は、それでいいんじゃないですかね。
JavaScript がない人は、1クリック増えちゃうけど。
試したけどやっぱりhashはいまいちだなあ。 戻るがきかない。 あと、IEだとスレの保存ができない Firefoxだとスレの保存はできるが 保存したスレを開くと _onload(e); でエラー(too much recursion)になる (IEで開くとStack overflawとでる) で、OKなブラウザでも普通のread.cgiへのリンクはあったほうがいいな (scriptで生成する)
434 :
root▲ ★ :2006/08/13(日) 04:33:19 ID:???0 BE:1641492-PLT(15631)
で、
>>77 あたりは、どうなんですかね。
JavaScript が、やはりいいんだろうか。
# そろそろ眠気来たかな。
436 :
382 :2006/08/13(日) 04:40:58 ID:4xdXhh4p0
rootタン教えてくだしい
試してみたけどAjaxの書き込みは凄い快適だな 専ブラ使ってるみたい。
>>433 >試したけどやっぱりhashはいまいちだなあ。
>戻るがきかない。
まぁ,上の方でも話してましたが,(JavaScript に限らず Java や Flash などでも)
このようにクライアント側で HTML 整形することになると,外側の html と
中身の dat の双方の HTTP リクエストが発生し鯖へのアクセス数は増加することになって
負荷軽減という面で見れば微妙になってしまうと.ここで,PATH_INFO 形式などでは
板・スレなどの指定が変わった際に外側の html のキャッシュが効かない,
それに対し location.hash ならキャッシュを有効活用できる,ってことなんで......
あと,これでスレの保存をした場合はどちらにしろ外側の html しか保存されず
中身の dat は保存されないので,保存に不向きなのは確かですね.read.so への
リンクを入れるとして,どのあたりに入れるのがいいですかね......
>>438 |あと,これでスレの保存をした場合はどちらにしろ外側の html しか保存されず
|中身の dat は保存されないので,,保存に不向きなのは確かですね.
Firefoxだと書いた状態で保存されたので一応表示はできた
(だからスレの保存はできると書いた)んだけど、自分で確認してみた?
保存っていうリンクを右クリッコ→対象をファイルに保存 じゃないけど、そういう案も考えてみた方がいいかも。
結局read.soは何の処理をしていますか?
>>442 従来のサーバ側で HTML 化する read.cgi と同じものですね.
これは良い夏休みの自由研究ですね。
446 :
root▲ ★ :2006/08/13(日) 12:53:17 ID:???0 BE:1276872-PLT(15641)
>>438 > ここで,PATH_INFO 形式などでは
> 板・スレなどの指定が変わった際に外側の html のキャッシュが効かない,
> それに対し location.hash ならキャッシュを有効活用できる,ってことなんで......
>>380 にあるやつを、
RewriteRule /?read\.cgi(?:/(.*))?$ /test/read.html#$1 [R,NE]
(上のやつ)
にしてみた。
447 :
root▲ ★ :2006/08/13(日) 12:56:13 ID:???0 BE:4104959-PLT(15641)
で、やっぱり画面上で read.html になるのも、微妙にあれですね。 画面上は read.cgi で表示してほしい(ファイルは read.cgi という名前で置く) とすると、どうすればいいのかしら。 確か、前にもこの質問したと思うけど、改めて。
鯖サイドとクライアントに上手に処理を分散させることはできないの? そうすると何かとあとあと便利かなと思ってるんだけど…めんどくさい?
449 :
ひろゆき@どうやら管理人 ★ :2006/08/13(日) 14:27:07 ID:???0 BE:38423-DIA(30602)
なんとなく紛らわしい パンツもふんどしも同じ股間を隠すものだけどふんどしをパンツとは呼ばない
451 :
ひろゆき@どうやら管理人 ★ :2006/08/13(日) 14:42:05 ID:???0 BE:101928-DIA(30602)
中身も同じものなんでしょ?
>>451 read.cgiでみんな慣れてる→ログとかも参照しやすい?分かりやすい?
↓
↓
JavaScript使用不可<使用可能
なのかな?
ようするに今まで慣れてるものにより一般的なものを対応させておいた方が何かと不具合起きにくいってことを言いたかった。 分かりにくくてすまn
>>447 <Files read.cgi>
AcceptPathInfo On
ForceType text/html
SetHandler default-handler
</Files>
>>449 read.cgi という同じ名前でアクセスしても,対応ブラウザなら read.html,
非対応ブラウザなら read.so,にそれぞれ振り分けるって形になると思います.
ただ,User-Agent の判定はできても JavaScript の on / off の判定は
サーバ側ではできないので,対応ブラウザでも JavaScript off の場合の
“逃げ道”として read.so という名前で参照できるようにする意味はあるかと.
>>454 Firefox, IE のバージョンはいくつでしょうか?
Firefox 1.5.0.x, IE 6 なら動くんですが......
>>457 あ〜,何かこれは FreeBSD で使ってる GNU iconv のバグっぽいのかな?
% perl -e'print "\x81\x60";' | iconv -f sjis -t utf-8 | iconv -f utf-8 -t ucs-2be | od -txC
0000000 30 1c
0000002
% perl -e'print "\x81\x60";' | iconv -f cp932 -t utf-8 | iconv -f utf-8 -t ucs-2be | od -txC
0000000 30 1c
0000002
% iconv --version
iconv (GNU libiconv 1.9)
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.
Solaris の iconv だと正常のようですが.
% perl -e'print "\x81\x60";' | iconv -fsjis -tutf-8 | iconv -futf-8 -tucs-2be | od -txC
0000000 30 1c
0000002
% perl -e'print "\x81\x60";' | iconv -fcp932 -tutf-8 | iconv -futf-8 -tucs-2be | od -txC
0000000 ff 5e
0000002
459 :
[´・ω・`] ZT037011.ppp.dion.ne.jp(59.128.37.11) :2006/08/13(日) 17:05:54 ID:cn3fyogX0
>>455 >バージョンはいくつでしょうか?
Firefoxは、 Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.5) Gecko/20041108 Firefox/1.0
IEは、5.0
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
>>459 どもです.Firefox は 1.0 ですか...... ひょっとすると
script エレメントを動的に作成しても実行してくれなかったりするのかな......?
タイミング的には read.html 中の JavaScript でスレ内容を書き出してからでないと
be.js の onload() を実行しても意味ないんで静的に読み込ませるってのもアレですし
(さらに,be.js は read.html だけでなく従来型の read.cgi や index.html にも
適用可能に作ってあるので,それとの兼ね合いもありますし)......
まぁ,be.js が担ってるのは主に旧 BE 板にあった機能なんで,それがなくても
致命的でないということなら,そのままでご了承頂くというのも一つの道かも......
あと,IE は 5 ですか...... IE 5 で対応してない正規表現はどれなんだろう......
>IE 5 で対応してない正規表現はどれなんだろう...... ひょっとして (?: ) かなぁ......? ロケーションバーから javascript:try { alert(/(\w)(?:\w)(\w)/.exec("abc")); } catch(e) { alert(e.message); } と入力するとどんな具合でしょうか?<IE 5
携帯のフルブラウザから書くとどうなるんだろと思ったがPCSV焼かれてるんだっけ
463 :
[´・ω・`] ZT042219.ppp.dion.ne.jp(59.128.42.219) :2006/08/13(日) 18:36:19 ID:GWvkDp280
464 :
[´・ω・`] ZT042219.ppp.dion.ne.jp(59.128.42.219) :2006/08/13(日) 19:16:04 ID:GWvkDp280
今の段階でIE5やfirefox1.0に対応する意味は皆無じゃないんでしょうか という素朴な感想
5.5が配布されていないからねぇ 98の人は5のままって人も多いかもね 5ならOfficeに入っていたりするし
古いブラウザの方はc-otherでも使っていて下さい。
>>461 \wが駄目みたい。。。[0-9A-Za-z_]に置き換えするべし
5.5から書いてます。 ダメならダメで振り分けてくれればいいかなという感じで。
>>470-471 なるほど,ありがとうございます.
>>421 のスレでは IE 5.5 SP2 でダメという報告もあるようですが......
対応はエラーの内容次第かな......
473 :
root▲ ★ :2006/08/13(日) 21:10:21 ID:???0 BE:2189838-PLT(15642)
>>449 なるほど、
read.cgi はそのままに、subback.html とかそのへんで read.html を出すとか、
そういうのはどうか、ってことですか。
このへんは、考え方次第ですかね。
474 :
root▲ ★ :2006/08/13(日) 21:10:47 ID:???0 BE:2736465-PLT(15642)
>>458 およよ、iconv のバージョンアップが必要とか。
>>474 GNU iconv は常用してないので詳しくないですが,BE の dat を
iconv にかけてた時にどこかのスレでどなたかがパッチを提示してませんでしたっけ?
バージョンアップだけで済むのか,それともさらにパッチが必要なのか,詳しくないので......
>>472 もちろん、まゃんまーではIE5.5はダメで、>461を>468へ置き換えると、「abc,a,c」のダイアログが表示されるということです。
Monazilla/1.00 (JaneStyle/2.41)
477 :
root▲ ★ :2006/08/13(日) 21:29:03 ID:???0 BE:3648858-PLT(15642)
ってことは、 ・bbs.cgi では、read.html#なんちゃら を生成する ・read.cgi は従来どおり動かす あたりが、いい感じなのかな。 ぼちぼち、やってみますかね。
479 :
root▲ ★ :2006/08/13(日) 21:32:27 ID:???0 BE:3283766-PLT(15642)
WITH_EXTRA_PATCHES=yes で ports から libiconv を作ると、
>>478 のは、入るみたい。
480 :
root▲ ★ :2006/08/13(日) 21:35:05 ID:???0 BE:4104195-PLT(15642)
てなわけで
>>478 ありの iconv に入れ替えるのは、今日寝るまでにやるです。
bbs.cgi は、気が向いたら取り組むぐらいで。
481 :
[´・ω・`] ZT042219.ppp.dion.ne.jp(59.128.42.219) :2006/08/13(日) 21:47:04 ID:GWvkDp280
482 :
root▲ ★ :2006/08/13(日) 22:10:27 ID:???0 BE:3284249-PLT(15642)
>>481 テクニカルには可能です。
あとは「どうするか」ですね。
個人的には、ブラウザに表示されるアドレスは、
変わってもいいかもとか思っていたり。
だって昔は、PATH_INFO 形式じゃなかったわけで。
従来のものとの互換性がとれるなら、いいんじゃないのかなと。
>>481 あえて / ではなく # を使うということには相応の理由があるんで (
>>438 )......
まぁ,もし仮にサーバ負荷のことなどを考慮しなくてもいいという前提なら / のままでもいいんですが.
あと,JavaScript 版については /test/read.html#...... という URL がデフォルトに
なる方向なのかも知れませんが,従来通りの /test/read.cgi/...... という URL でも
アクセス可能な状態は保たれるようにするということで.
ただ,subback.html に埋め込む URL を /test/read.html#...... にした場合の問題点は, 非対応ブラウザからのアクセスをリダイレクトで read.cgi に飛ばすのに困る,ってことですね. サーバには URL の # 以降の部分は渡されないので,PATH_INFO 形式の read.cgi 用 URL を 生成できないってことになるんで...... 逆に,PATH_INFO 形式でアクセスしてきたのを location.hash 形式の URL にリダイレクトさせるのは可能ですが. あるいは,subback.html を JavaScript 対応版と非対応版の二種類作って subback.html の段階で振り分けるとか......とはいえ,これも大変か......
485 :
root▲ ★ :2006/08/13(日) 22:43:17 ID:???0 BE:3283766-PLT(15642)
WITH_EXTRA_PATCHES=yes で libiconv を作り直し、 libiconv に依存している ports を作り直しました。 mod_charset_lite のパッチ版も、作り直しました。
486 :
root▲ ★ :2006/08/13(日) 22:48:49 ID:???0 BE:2918584-PLT(15647)
487 :
root▲ ★ :2006/08/13(日) 22:53:27 ID:???0 BE:5837388-PLT(15647)
で、bbs.cgi ごにょごにょして、 read.cgi を従来バージョンにするのは、 ちと、明日以降にじっくりとというかんじで。
>>485 乙です.iconv は正常になったようですね.
% perl -e'print "\x81\x60";' | iconv -f sjis -t utf-8 | iconv -f utf-8 -t ucs-2be | od -txC
0000000 30 1c
0000002
% perl -e'print "\x81\x60";' | iconv -f cp932 -t utf-8 | iconv -f utf-8 -t ucs-2be | od -txC
0000000 ff 5e
0000002
% iconv --version
iconv (GNU libiconv 1.9)
Copyright (C) 2000-2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Bruno Haible.
>>486 >なおた
ようです.
#でリンクする場合、IEでは未読リンクと既読リンクの区別がつかなくなるような
490 :
ひろゆき@どうやら管理人 ★ :2006/08/13(日) 23:49:21 ID:???0 BE:227849-DIA(30602)
文字コード変換のライブラリってjsではないんですかねぇ。。
491 :
ひろゆき@どうやら管理人 ★ :2006/08/13(日) 23:51:26 ID:???0 BE:340496-DIA(30602)
ひろゆきがJS書いてあげてよ!
493 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 00:18:48 ID:???0 BE:177247-DIA(30602)
ら、、来年には。。
文字コード問題なら
>>125 の方法もあるよ。javascript側でも出来るけど
実用に耐えられないんじゃ
495 :
root▲ ★ :2006/08/14(月) 00:27:12 ID:???0 BE:1916137-PLT(15647)
>>490 文字コードもクライアントで変換させたいと。
496 :
stream ◆PNstream2s :2006/08/14(月) 00:43:14 ID:6OcOUbMJO
JavaScriptには生のバイト列をサーバーから受信する方法はなさそうですから、変換も何もないかと思われる。
もらえるよ。大丈夫。
少なくとも、文字化けしないと分かってるブラウザは /dat-utf8 じゃなくて /dat を 使うようにできませんか。
bbs.cgiもJavaScript化しないかな
言い出しっぺの法則で
確か /dat を直接使えば変換の必要はないけどそれだとキャッシュから読み取ったとき
IE6 が文字化けするんだっけ? で
>>499 と。
504 :
445 :2006/08/14(月) 01:14:17 ID:SWdP+SnS0 BE:412948894-2BP(120)
505 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 01:45:14 ID:???0 BE:158055-DIA(30602)
文字コードの変換コストが高い気がするのです。
>>503 に同意なのですが、IE6以外は大丈夫なんですか?
506 :
root▲ ★ :2006/08/14(月) 01:50:50 ID:???0 BE:3284249-PLT(15647)
>>505 文字コードの変換コストは、圧縮処理(mod_deflate)よりも断然低いですね。
文字コードの変換にこだわるなら、
圧縮を段階的にやめることを検討したほうがよさげかもです。
昔とは事情が違うわけですし。
507 :
root▲ ★ :2006/08/14(月) 01:58:17 ID:???0 BE:5107878-PLT(15647)
で、圧縮は、ようは CPU 負荷というコストを使って、 転送量をセーブすることにより、何か得られるものがあるから (例えばお金の節約とか)、やっていると思うわけです。 で、もし仮にですが、圧縮で得られるものが圧縮で使うコストよりも少ないのであれば、 それは「労多くして益少なし」ということなんではないのかなと。 PIE に移ってからは、定価のタリフのうえでは「帯域については完全保証(料金は変わらない)」と 言っているので、そのあたりのコスト感覚というか計算についても、いろいろと検討してみる必要が あるのかもしれないのかなと。 # ただ、今の standard banana でいきなり圧縮やめると、 # 10Mbps を超えてしまうやつが、ぼろぼろ出てくるかもしれないですが。
>>489 Firefoxだと別管理だったけど
IEだと確かに全部既読になった
IE(6 には文字化け問題があるとして,7 はどうなんでしょ?)だけ dat-utf8 使って それ以外 dat ってのをやるならそれでもいいんですが,その場合 ---------------------------------------------------------------------- <Location /*/dat/*.dat> AddDefaultCharset Shift_JIS Header append Cache-Control max-age=5 </Location> ---------------------------------------------------------------------- ってのを httpd.conf に入れてもらうということで.ただ,これを入れた場合 黒山羊の Squid などに影響が出ないかどうかってのは要観察かも知れません.あるいは, ---------------------------------------------------------------------- <Location /*/datx/*.dat> AddDefaultCharset Shift_JIS Header append Cache-Control max-age=5 </Location> <VirtualHost ...> # ServerName dso.2ch.net のところ AliasMatch ^/(\w+)/datx/(\d+\.dat)$ /home/ch2dso/public_html/$1/dat/$2 </VirtualHost> ---------------------------------------------------------------------- のようにして datx を使うことにすれば,黒山羊等の心配は無用ですが.
IEでも全datを取得するような場合は生SJISを読むことはできる。
>>86 ただし差分の取得などには使えなさそう。
512 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 14:22:32 ID:???0 BE:63825-DIA(30602)
圧縮ははずす方向だった予感。
>>511 差分読み込みをするために文字コード変換して一部を渡すのと、
文字コード変換せずに全部のdatを渡しちゃうのは
どっちが重いんでしょう?
ぜんぶ
文字コード変換しても差分読み込みはできません。 現状では(Not Modifiedが返らない限り)無条件にdatは全部読んでます。 そうしないと部分表示に対応できないから。
515 :
root▲ ★ :2006/08/14(月) 14:33:19 ID:???0 BE:1641492-PLT(15697)
>>512 > 圧縮ははずす方向だった予感。
おぉ。そうすか。
vip とかの単体系サーバにとっては、かなり朗報かも。
>>512 第二段落
全部の方が、特にでっかい dat の時はコスト高そうな気がしますね。
でもたぶん、測ってみる必要がありそう。
>>514 そうでしたっけか。< 差分ができない
そのこころって、なんでしたっけ。
>>515 あ、書き込みの後とかリロードボタンを押した場合には
差分取得してるかも。
> リロードボタン じゃなくてリロードリンク
518 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 14:42:53 ID:???0 BE:340496-DIA(30602)
差分は仕様がよくわからないと。。
519 :
stream ◆PNstream2s :2006/08/14(月) 14:42:55 ID:6OcOUbMJO
なんか勘違いしてる見たいですけど、差分転送なんて有り得ないですよ。IE6が文字化けするのは、If-Modified-SinceとかIf-None-Matchを使った「条件付きGET」の結果、304が帰ってきた場合です。
520 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 14:44:03 ID:???0 BE:176674-DIA(30602)
>差分転送なんて有り得ないですよ つまり差分転送はjsだと出来ないってことですか? >「条件付きGET」の結果、304 ってのは、具体的に何をしたときに発生するどういうエラーなんでしょう?
521 :
root▲ ★ :2006/08/14(月) 14:45:40 ID:???0 BE:1095326-PLT(15697)
条件付きGETの結果、304 が返ってくる = dat が更新されていなかった かな。 つまり、書き込みも削除もされていなかったと。
差分転送は、2chブラウザと同じ方法で出来るでしょ。 現状の仕様が差分転送してないだけで、
>>519 そういえば304の応答に「Content-Type: text/plain; charset=Shift_JIS」を含めても
文字化けするの?
>>522 ただしログはとっておけないからその場で(ページを移動せずに)リロードした場合に
限る。だから
>>516 と。
もっとも現状では差分取得は一切やってないみたいだけど
>>523 うんうん
xmlhttpのresponseBodyで、バイナリデータ貰えるし、
Rangeヘッダ追加してやりゃ差分取得もできる。
responseBodyがIE限定だし
ブラウザから更新されたら意味ないから無駄に近いけど
525 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 15:02:27 ID:???0 BE:170093-DIA(30602)
つまり差分取得は可能だけど、今のバージョンは未対応。。と 差分転送で更新されてないと304が返るけど、 jsだとハンドリングできないってことですか?
527 :
stream ◆PNstream2s :2006/08/14(月) 15:06:22 ID:6OcOUbMJO
>>520 JavaScriptじゃできないですね。差分取得使うなら通常ブラウザのキャッシュではなく独自のキャッシュ機構が必要ですから、パソコンのディスクなどにアクセスできる方法じゃないと。
>>522 JavaScriptでもRangeヘッダをつければ差分取得自体はできるけど、そのRangeに設定する数値はどうやって決めるのか。
仮に決められても、そもそもブラウザを終了したり他のページに移ったら(=JavaScriptが終了したら)キャッシュに残ってるデータのうしろに差分取得したデータをくっつける手段はないから、プログラムを複雑にしてまでやるメリットは薄いと思う。
何が方法があるならコード例を示して欲しい。responseBodyはすでに過去のもののはず。
>>525 jsのHTTPクライアントのXMLHTTPさんが過保護で
普通に取得しても、キャッシュに残ってる+更新されてないと
そのキャッシュを読み込んで返す。
ヘタしたら304さえ返さない。てか304返すなら拾えるし。
キャッシュ読み込むときに文字コードの判定にしくって
文字化けが起きてるらしい。
529 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 15:12:39 ID:???0 BE:63252-DIA(30602)
>>527 そすっと、差分取得はないものとして作れば、
304エラーの問題もなくなると。
dat丸ごとの転送で作ってみて、
既存のread.cgiでの処理との比較をしてみるとか。
530 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 15:13:27 ID:???0 BE:88272-DIA(30602)
>>528 キャッシュを読むときに文字コード指定したりして、
回避することは出来ないんすかね。
>>527 リーロードボタンみたいなのを別に設置したらできそうだね
532 :
stream ◆PNstream2s :2006/08/14(月) 15:17:31 ID:6OcOUbMJO
>>523 そもそも304の応答にはボディはないからContent-Typeはつけちゃいけないし、mod_header使ってもつけられない。
>>528 >過保護
いやそれごく普通の動作だし、いやならIf-Modified-Sinceに昔の時刻を設定するのが筋でしょ。
533 :
root▲ ★ :2006/08/14(月) 15:18:27 ID:???0 BE:2280555-PLT(15697)
>>532 > そもそも304の応答にはボディはないからContent-Typeはつけちゃいけないし、
> mod_header使ってもつけられない。
おぉ、なるほど。
で、IE6 だとその場合、UTF-8 だと思い込んじゃう、ってことなのかしら。
>>527 >プログラムを複雑にしてまでやるメリットは薄い
いやまんまこのとおりだからほぼ無意味。
>>530 XMLHTTPの文字コード判定は
サーバーからの指定と
XML文章だったばあいencodingの部分。
あとHTMLの指定ぐらいかな。
それ以外は、自力解釈。わかんない場合UTF-8で読む。
他に設定できない気がした。
535 :
stream ◆PNstream2s :2006/08/14(月) 15:52:57 ID:6OcOUbMJO
>>529 まあ、SunOsさんはそれよりも文字コード変換してしまったほうがすっきりするということで実装を進めたようですが
差分取得は
>>527 ということでやってません.で,304 エラー(というか,別に
Not Modified はエラーではないんですが)は差分取得とは無関係の問題で,
dat が前回取得時から更新されていない場合に起こるということです.
普通のスタティックな html ページなどと同じで,更新されていれば
新たなページ内容が返ってくる,更新されてなければ 304 が返ってきて
ブラウザはキャッシュを利用すると.
ただ,文字コード変換は IE のためだけにわざわざやっているんで,
>>510 のようにすることはできます.
538 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 16:10:15 ID:???0 BE:303168-DIA(30602)
おぉ?IEは以外は文字コード変換しなくても 大丈夫なんですか?
>>532 > そもそも304の応答にはボディはないからContent-Typeはつけちゃいけないし、
なるほど確かに。
> If the conditional GET used a strong cache validator (see section
> 13.3.3), the response SHOULD NOT include other entity-headers.
> Otherwise (i.e., the conditional GET used a weak validator), the
> response MUST NOT include other entity-headers; this prevents
> inconsistencies between cached entity-bodies and updated headers.
> entity-header = Allow ; Section 14.7
(中略)
> | Content-Type ; Section 14.17
(1)datの先頭に<!--あ-->等の文字を入れておく (2)まずはsjis版のdatを取得に行く 先頭の<!--あ-->が化けていない場合は新規取得っぽいのでそのまま表示 <!--あ-->が化けている場合はキャッシュっぽいのでutf-8版を取り直す こんな感じで文字コード変換の回数を減らせるかな。
>>538 少なくとも Firefox では問題ないようでした.
542 :
root▲ ★ :2006/08/14(月) 16:15:07 ID:???0 BE:2554447-PLT(15697)
>>540 「美乳の手法」ってやつでしたっけ。
ただし「美乳」は、euc-jp の時みたいですけど。
個人的には<!--ゲイツ氏ね-->とでも
544 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 16:18:00 ID:???0 BE:397297-DIA(30602)
IEのバージョンによってOKだったりするんですかね?
7では直っていることを期待したいですね。
>>544 IE7だと大丈夫という説があるけど未確認です
>>540 それだと,IE の場合キャッシュを使わず毎回サーバから取ってくるのと
変わらない,っていうか dat の仕様変更になるんで各方面に与える影響が......
# dat の仕様変更するなら,上の方で出てた XML の CDATA セクションに突っ込む形の方が......
548 :
root▲ ★ :2006/08/14(月) 16:29:49 ID:???0 BE:2189164-PLT(15697)
dat に「美乳」みたいなの入れる方向は、全く考えてないです。
>>547 特定の実装の虫にそういう方向で対応するのは、
管理人が「やれ」といわない限り、ない方向で。
549 :
ひろゆき@どうやら管理人 ★ :2006/08/14(月) 16:35:58 ID:???0 BE:75762-DIA(30602)
文字化けの問題がIE7で解決されるのであれば、 いずれ解決されるって前提で進めたほうがいいとおもうです。
初回 sjis取得 リロード1回目(更新あり) sjis取得 リロード1回目(更新なし 304) sjisキャッシュ破棄 → utf-8取得 リロード2回目以降(更新あり) sjis取得 リロード2回目以降(更新なし 304) sjisキャッシュ破棄 → utf-8キャッシュを表示 ・・・混乱してきた。 どうせIE7で直るなら、変な小細工を考えないほうがいいですね。
UAで判断する方針?
>>118 (って今はないのかな?)を IE 7 で見てもらって問題ないなら
文字コード変換かけるのは IE 6 限定ってことでもいいかもですね.
>>549 オートアップデートである日突然元の仕様に戻って2ちゃん化け化けとか
if (window.XMLHttpRequest) { //Mozilla, Firefox, Safari, IE7 sjisのdatでok }else if(window.ActiveXObject) { //IE5,IE6 urf-8のdatで }else{ //そもそも無理な人たち read.cgiへ } これで、safari以外たぶん大丈夫になる。
まずはSJISのdatを取得して、化けてる(304でキャッシュを開いてる)時だけUTF8版を取りに行く。 更新がずっと無ければUTF8版のキャッシュが表示される。 2回のリロードごとに更新があると効率が悪い。
streamカモーン
Shift JIS のままの dat を取ってくるなら,
>>510 の設定を dso に入れてほしいと......
まぁどっちにしろ,少なくとも IE 以外は Shift JIS の dat を取ってくる形にすれば
ムダにはならないんで.
560 :
root▲ ★ :2006/08/15(火) 00:53:39 ID:???0 BE:1459182-PLT(15697)
>>559-560 乙です.
とりあえず,しばらくの間 IE 6 も含めすべて Shift JIS の dat を取ってくる形にします.
IE 6 の問題体験ツアーってことでw
562 :
root▲ ★ :2006/08/15(火) 01:04:45 ID:???0 BE:5746379-PLT(15697)
>>561 だめ出ししようってことすね。了解です。
なるほど。リロードするとおもくそ化けますた@IE6 Firefox 1.5.0.6では問題なし ではリブートしてIE7で試してみますノシ
>>563 read.html更新されてます?
キャッシュの設定は?
とりあえずIE7だと化けませんですた
Opera/9.01 (X11; SunOS i86pc; U; en) でも問題ない模様.
>>564 上の方にも IE 6 で文字化けしないって人がいたけど,それはブラウザの設定で
キャッシュが残らないようになっていたためだったということなんで (
>>135 ),そのあたり確認を......
>>565 どもです.IE 7 なら大丈夫そうとなると,dat-utf8 は IE 6 限定でもよさそうかな.
IE5を見放さないで
569 :
root▲ ★ :2006/08/15(火) 01:31:41 ID:???0 BE:547823-PLT(15697)
>>568 開発元(MS)って、IE 5.x をまだサポートしていましたっけ。
IE5とIE6は、ちょうど限定して使える、 responseBodyで、クライアント側で文字コード変換しようか。
>>568 まぁ read.html の対象外となっても決して利用不能になるわけではなく,
単に従来式の read.cgi に振り分けることになるだけなんで......
>>570 それって,かなり重いって話もあるようですが......
>>569 IE 5.5はかなり昔にサポートが切れますた
Windows 2000でのみ、IE 5.01がまだサポートされてます
(OSに付属のバージョンなのでOS自体と同じサポート期間)
でもどのみち5.0はダメっぽいので(
>>471 )
0.4%程度なら(
>>469 )read.cgiに振っても負荷にはほとんど影響しないでしょう。
>>570 もしかして /dat-utf8 を全廃できる?
マカーos9組は、IE5.1.7でサポート終了してます。(涙
http://winofsql.jp/VA003334/asp051115161559.htm#ttl3 vbsのはあった。
' バイナリ -> 内部コード
For i = 1 To LenB( strBin )
c1 = AscB(MidB(strBin, i, 1))
if &H81 <= c1 and c1 <= &H9f or &He0 <= c1 and c1 <= &Hfc then
i = i + 1
c2 = AscB(MidB(strBin, i, 1))
c1 = c1 * 16 * 16 + c2
end if
strVbs = strVbs & Chr(c1)
Next
処理自体はこのぐらい。
理由はわからないけど何故か文字化けしないっす キャッシュも残ってるし、、、
>>577 read.htmlのソースには datx って入ってる?
dat-utf8 が入ってたらソースが古いのでスーパーリロードとかしてみて
キャッシュクリアしてみたりスーパーリロードしてからでも化けないっす、、、謎
>>574 あ、VBじゃなくてVBSか。VBSにはStrConvはないのね。
どうせIE専用なんだからVBScriptで関数作ってJavaScriptから呼べばいいと思われ
>>579 まあ化けない環境が存在するからって化ける環境の対策が不要ってことには
ならないので。
でもまぁ,IE 7 で問題が解消するとなると,いずれ IE 7 の割合が増えて IE 6 の割合が減るなら,mod_charset_lite 利用による負荷は時間が解決してくれる はずってことで,あえて複雑なことをするまでもないかな,って気もします. フィルタ通すことによる負荷なら,上の方でも言ってますが mod_deflate による gzip 圧縮の方がよほど重いんで.
583 :
root▲ ★ :2006/08/15(火) 02:25:05 ID:???0 BE:1824645-PLT(15700)
>>582 に同意ですね。
IE6 は「長いもの」なので、特別扱いでもまぁしょうがないのかなと。
長いものに巻かれるというか、長いものに振り回されてる感じ
585 :
ひろゆき@どうやら管理人 ★ :2006/08/15(火) 07:01:25 ID:???0 BE:132473-DIA(30604)
んでは、IE6のをdat-utf8にしてみるってことで、 あと解決しなきゃいけない問題ってどんなのでしょう?
「書き込みました」の画面に書き込んだ投稿の内容を埋めておけば、 書き込み後にdatを再取得する手間が省けるかなあ。 でも、同時に複数書き込みがあったとき(1000ゲットなど)にレス番号表示がおかしくなるかも。
結局datから必要な部分を切り出してUTF-8に変換するCGIを用意するだけに 落ち着きそうな気もしてきた。
巨大AA貼りつけスレを見ると30秒くらいCPUフル稼働する… Opera9(Win)
589 :
root▲ ★ :2006/08/15(火) 11:15:19 ID:???0 BE:547823-PLT(15700)
さて、ぼちぼち dso サーバの bbs.cgi が吐くリンクを read.html にしてみようかなと思うわけですが、 単に、 read.cgi/板名/キー/引数 を、 read.html#板名/キー/引数 に変換すればいいのかしら。
>>585 あとは,細かい改良の積み重ねって感じでしょうか......
>>589 subback.html の URL の変更はちょっと大変かも......現状では
<base href="
http://dso.2ch.net/test/read.cgi/myanmar/ ">
<a href="1111111111/l50">...</a>
のようになってますが,これを
<base href="
http://dso.2ch.net/test/read.html#myanmar/ ">
<a href="1111111111/l50">...</a>
にしてもダメで(base に # を含む URL を指定してもナンセンスで,
この場合 "
http://dso.2ch.net/test/ " として扱われてしまう),
<base href="
http://dso.2ch.net/test/ ">
<a href="read.html#myanmar/1111111111/l50">...</a>
のようにしなければなりませんが,こうなると subback.html がデカくなりそうです......
さらに,上の方でも言いましたが,subback.html 中のリンク自体を location.hash 形式にすると
read.html 非対応ブラウザを従来版 read.cgi に直接リダイレクトさせるのも不可能になってしまいます.
逆に read.cgi/...... から read.html#...... へリダイレクトさせるのは可能ですが,
リダイレクトによる HTTP リクエストを削減させるとすれば,302 Found の代わりに
301 Moved Permanently を返せばいいのかな(ただ,301 を返すようにするのは
URL の仕様がちゃんと固まってからの方がいいでしょうけど).
IEで未読と既読の区別がつかなくなるという問題も。
592 :
root▲ ★ :2006/08/15(火) 13:29:16 ID:???0 BE:2554447-PLT(15700)
>>590 ふむふむ。
subback.html が大きくなるのは、ある程度は仕方がないと割り切れるのかな。
何といっても、read.cgi の起動回数が大幅に減るわけで。
> 逆に read.cgi/...... から read.html#...... へリダイレクトさせるのは可能ですが,
これは、read.cgi が一度は起動してしまうのかしら。
dso だから、それでもかなりいいかんじですけど。
>>591 それはあるですね。
subbackのリンクは標準では従来通りにして、JavaScriptで
(onclickとかonloadを見張って)差し替えたらどうですか?
どうせJavaScriptが有効でないとread.htmlは使えないんだし
>>591 の問題も解決する。
具体的にはこんな感じのをsubback.htmlのヘッダに突っ込むだけ <script type="text/javascript"><!-- document.onclick = function(e) { var t = window.event ? event.srcElement : e.target; if (t && t.href) { window.open(t.href.replace(/read.cgi\//, 'read.html#'), t.href.target); return false; } } --></script>
>>593 面白いかも。
…でも、具体的にはどんな subback を生成すればいいのかしら。
>>594 おー、かぶりました。
subback の頭に入れればいいのかしら。
>>596 yes. <head>〜</head>の間のどこかです。
手元ではとりあえずIEとFirefoxで動いてるみたいです。
subback.html はこれでやってみるとして、 index.html は、どんなかんじになるのかしら。同じでいいのかな。
>>598 試してみましたけどindex.htmlの場合は
<a href="#1">
のリンクを踏んだときの動作が微妙ですね。ちょっと改良が必要かも。
ってことで改良版。 <script type="text/javascript"><!-- document.onclick = function(e) { var t = window.event ? event.srcElement : e.target; if (t && t.href) { t.href = t.href.replace(/read.cgi\//, 'read.html#'); } } --></script>
subback.htmlも
>>600 のほうがいいです。
あ、すみません。最後の行は //--></script> にしてください(先頭に // を入れる)。
どもです。 同じものを両方に入れればいい(サブルーチン一つ書けばいい)のかしら。
605 :
root▲ ★ :2006/08/15(火) 14:32:20 ID:???0 BE:2919348-PLT(15700)
dso に入れてみた。< bbs.cgi で、 #RewriteRule /?read\.cgi(?:/(.*))?$ /test/read.html#$1 [R,NE] を、コメントアウトした。
606 :
root▲ ★ :2006/08/15(火) 14:35:58 ID:???0 BE:2554447-PLT(15700)
ランタイムエラーが出るみたい。ううむ。
>>605 /read.cgi\//
の \ が抜けて
/read.cgi//
になってるので、正常に動いていないようです。
608 :
root▲ ★ :2006/08/15(火) 14:37:39 ID:???0 BE:3283766-PLT(15700)
ここかな。 t.href.replace(/read.cgi//, 'read.html#');
""で囲んでるなら\も二重にしないと。
610 :
root▲ ★ :2006/08/15(火) 14:39:35 ID:???0 BE:2463539-PLT(15700)
>>607 \\ にしてみた。< bbs.cgi
どうかな。
611 :
root▲ ★ :2006/08/15(火) 14:40:58 ID:???0 BE:5745997-PLT(15700)
いい感じみたいですね。 リンク押しても紫にならないけど(それはしょうがないか)。
Firefoxではうまくいってる予感
613 :
root▲ ★ :2006/08/15(火) 14:46:45 ID:???0 BE:2736465-PLT(15700)
Sleipnir (IE6 エンジン)では、うまくいっているみたいです。 これ、いいすね。 で、JavaScript なしバージョンだと、普通に read.cgi ですか。 read.cgi を read.cgi という名前で*も*、有効にしてきます。 SunOS さんが read.so のところを read.cgi にしたら、 read.so はなしにします。
614 :
root▲ ★ :2006/08/15(火) 14:48:54 ID:???0 BE:1641492-PLT(15700)
>>613 これで、普通に read.cgi は read.cgi として起動するようになった。
未読既読はスレにはられるやつにも影響あるなあ...
IEが落ちる
フリーズしたようになる(
>>576 )
戻るがおかしい
は直して欲しいな。
read.htmlでも
>>600 いれればいいのかな
read.htmlに組み込むのはSunOSさんにお任せってことで。
いやあ、近未来的だなぁ とか言ってみる Ajax版P2 みたいなものを期待
>>600 だと既読になるのは#のほうだから未読既読は解決しないのか。
あとIEだとコンテキストメニューから開くとonclickが呼ばれない。
あとimu.nuとかでもあったけど、 条件を厳しくしないと誤爆するね。
ime.nuみたいなリダイレクト専用サーバーを立ててそこにリンクを張るとか。 (クリックさせないで一瞬で飛ばす) で、そのサーバーがこけるたびに大混乱
IEの右クリックと誤爆対策。 <script type="text/javascript"><!-- document.onmousedown = function(e) { var t = window.event ? event.srcElement : e.target; if (t && t.href) { var h = t.hostname; if (h && h.length > 8 && h.substring(h.length - 8) == '.2ch.net') { t.href = t.href.replace(/read.cgi\//, 'read.html#'); } } } //--></script> bbspinkへの対応は、15日になったしいらないよね? とか言ってみる。
ずーっと気になってし、言いだしっぺも自覚してると思うんだけど read.html見たいな動的ページって検索エンジンに拾って貰えない気がするんだ。 そのへんはおkなの? read.cgiが生きてる限り大丈夫だけど、ページランクは下がるだろうし。
ネイバーに限らず、クローリング自体での負荷の上昇も嫌ってるのでそこは問題ないはず。
625 :
root▲ ★ :2006/08/15(火) 23:59:54 ID:???0 BE:2736656-PLT(15700)
>>623 read.cgi を殺す気は(私は今のところ)ないですね。
>>622 bbspink.com も対応できるようにしておいていただけると、
とてもよいかなと。
というか
>>622 により、どうなるんでしたっけ。
素人質問でごめんなさい。
IE 6 だけ dat-utf8,それ以外 datx にしますた.
プログレッシブな表示ってのも入れたつもり.
戻るについては,
>>337-341 あたりと同じような問題があって......
read.cgi/... のリンクを read.html#... に変換するのも入れますた.
>>600 のはおもしろそうだけど,
>>619 のコンテキストメニュー問題と
あとステータスバーに出るURL がクリックするまで変わらないっていう問題も
対応するとこんな感じかな.
for (var i = 0; i < document.links.length; i++)
if (/^
http:\/\/ (?:\w+\.)?(?:2ch\.net|bbspink\.com)\/test\/read\.cgi\/?/.test(document.links[i].href)) {
var isEqual = document.links[i].href == document.links[i].firstChild.data;
document.links[i].href = document.links[i].href.replace(/read\.cgi(\/)?/, function(s, slash) { return "read.html" + (slash ? "#" : ""); });
if (isEqual)
document.links[i].firstChild.data = document.links[i].href;
}
あと,subback.html や index.html のは,実用化段階では JavaScript 有効でも
read.html 対象外のブラウザは従来通りの URL ってことにしなきゃですね.
DOMでぴゃーっと書き換えちゃうコード入れときゃおkじゃね?
628 :
root▲ ★ :2006/08/16(水) 00:13:43 ID:???0 BE:2918584-PLT(15700)
>>626 おつです。
index.html や subback.html に仕込むのも、それにしたほうがいいのかしら。
で、
>>626 の最後の2行をうまく実装する必要があると。
いくつかの問題を解決するのが難しいなら 普通のread.cgiを使うかどうかをCookieに保存できればいいなあ
>>623 JavaScriptで置き換える方法だと検索エンジンから見たソースは今まで通り
なので問題なし
>>628 > index.html や subback.html に仕込むのも、それにしたほうがいいのかしら。
SunOSさんの書いたものの方がおすすめ
あぁ,
>>626 のは subback.html では
onload = function(e) {
:
};
で挟む形で.ただ,index.html の方はそのままだと index.js と衝突するのと,
さらに <font> タグをやめた S★ の装飾とかを JavaScript でやるなら
be.js もインクルードするってことで,そのあたりとの兼ね合いもあるかな......
>>629 単純に JavaScript を切れば従来版 read.cgi にジャンプするのでは?
名前欄とかはブラウザのフォームコンプリート機能を使うとかで......
633 :
root▲ ★ :2006/08/16(水) 01:42:09 ID:???0 BE:4925669-PLT(15700)
>>632 なるほど、index.html でうまく動かないのは、そういうことですか。
とりあえず、ちと食事。
過去ログ鯖とかは変換しないほうがいいような
>>632 JavaScript有効時の話
636 :
root▲ ★ :2006/08/16(水) 01:54:49 ID:???0 BE:3283294-PLT(15700)
とりあえず、index.html はさっきまでのものに戻しておきます。
>>635 index.htmlとかsubback.htmlでだけど、
「問題を解決するのが難しいなら」書き換えるかどうかの選択肢がほしい
で、外から飛んできたときはどうするのがいいんだろう?
>>637 バックボタンとかその辺ですか? これはブラウザの仕様とかの
兼ね合いもあるんですが...... いっそ別窓で開かせればすっきりするのかなぁ......
あるいは,外側の html のキャッシュ問題(ひいては鯖の負荷問題)を無視して
PATH_INFO 形式をデフォルトにするか......
>>638 RewriteCond %{HTTP_USER_AGENT} ほげほげ
RewriteRule /?read\.cgi(?:/(.*))?$ /test/read.html#$1 [R=permanent,NE]
でもこれなら,subback.html とかの JavaScript もいらないことになるのか......
# 実際 permanent にしちゃうのは
>>590 ってことで.
>>640 ん? RewriteCond / RewriteRule 使えば,subback.html 中の URL は
read.cgi/... のまま(従来通り)で read.html#/... に飛ばせる,
で read.html 対応ブラウザだけ RewriteCond で判定して飛ばせば
検索ロボットはそのまま read.cgi に逝くかと.
> ただ,User-Agent の判定はできても JavaScript の on / off の判定は > サーバ側ではできないので,対応ブラウザでも JavaScript off の場合の は?
>>642 あぁ,そうか...... となると,subback.html とかには JavaScript 入れて,
Referer が subback.html とか以外の場合に RewriteRule が有効になるようにすればいいのかな......
ちょいとこちらで dso の bbs.cgi いじってみますた.
・
>>626 を index.js 等と衝突しない形で index.html に入れた.
・ be.js を index.html にも入れてみた.
んで,read.html のキャッシュを生かして鯖へのアクセスを抑制するには
location.hash 形式がいいんですが,ブラウザの仕様上
・ ロケーションバーから直接 URL 入力した場合や「戻る」ボタンの問題
・ 履歴(未読・既読)の問題
ってあたりで利便性は低下するんですよね......もしこのあたりの問題で
利用者の不満が強いようなら,涙を飲んで PATH_INFO 形式をデフォルトに
した方がいいのかなぁ......
645 :
root▲ ★ :2006/08/16(水) 11:54:13 ID:???0 BE:3648285-PLT(15700)
>>644 > ちょいとこちらで dso の bbs.cgi いじってみますた.
うひょひょ。見てみるです、見てみるです。
# 意外に早かったかも。
# でも、管理人からのメールの返事にあった「くれぐれも」で始まるひとことも、
# たまには思い出すといいかもかも。
#
# …などとえらそうに、言っておこう、言っておこう。
> もしこのあたりの問題で
> 利用者の不満が強いようなら,涙を飲んで PATH_INFO 形式をデフォルトに
> した方がいいのかなぁ......
現状の「サーバ資源の逼迫度合い」を考えたら、
PATH_INFO 形式でもいいのかもしれないですね。
646 :
root▲ ★ :2006/08/16(水) 13:41:53 ID:???0 BE:6567089-PLT(15700)
647 :
root▲ ★ :2006/08/16(水) 13:51:56 ID:???0 BE:3192757-PLT(15700)
>>645-647 手を付けていいものか迷いもあったんですが,
手っ取り早く結果を見たかったんでいじっちゃいました.
諸々のことについては気を付けますです,はい......
で,be.js は www2 の方に置いて頂けたようなので,
read.html から参照するのもそちらに変更します.
649 :
root▲ ★ :2006/08/16(水) 14:59:33 ID:???0 BE:1824645-PLT(15700)
>>648 どもです。「気をつける」というマインドが重要ですね。
あとはここでいろいろ言わなくても、実例(私とか)がここにはいっぱいいるし。
>>650 落ちた上に文字化けしてる
6.0.2800.1106.xpsp2.050301-1526
>>651 あら......てか文字化けですか......なぜだろう......
外側のHTMLが文字化けしてる・・・。中のdatは無事、落ちることもないです。 IE 7.0.5450.4 (Beta 3) (てかXML宣言のencodingを読んでないのか?)
>>653 IE 7 でもまだ不完全な部分があるのか......
とりあえず <meta> で指定しますた.
>>655 どもども......じゃあ落ち問題は解決かな......?
ん!? いつから★は青くなったの?
Opera/8.54 (Windows NT 5.1; U; ja)
途中送信してしまったorz
上の環境で
>>658 を開くとCPUが90〜100%になり、スクロールがぎこちないです
Pen4 1.7GHz
662 :
◆TWARamEjuA :2006/08/16(水) 22:50:11 ID:77FAh90w0 BE:2940293-BRZ(3010)
javascript:void%200; (´・ω・`)ショボーン Safari バージョン 2.0.4(419.3)
>>660 まぁデカいスレの表示で重くなるのはある程度仕方ないかな,と......
>>661 Firefox は,JavaScript 処理に時間がかかるとそのダイアログが出ますね.
>>662 う〜む......そのあたりは難しいのかなぁ......
>>658 IE6+Sleipnir
変換中は、スクロール重くなるけど
表示しきるとスクロールも大丈夫な感じ
Firefoxだと読み込み時にメモリ食うね
IE6 WinXP SP2 Pentium4 2.4G 658を開くとCPUが100%になって固まるorz Operaも固まりはしないけど、スクロールしなくても常に80%以上orz 困った… DSBLに引っ掛かったので携帯からカキコ
668 :
ノtasukeruyo :2006/08/17(木) 16:36:22 ID:q2qdvPTD0
>>658 見ても特に大丈夫でした。
スペックはセレロン2.0GHzメモリ512MB
Monazilla/1.00 (JaneStyle/2.41)
669 :
ノtasukeruyo :2006/08/17(木) 16:38:50 ID:q2qdvPTD0 BE:698357186-2BP(103)
やべ、専ブラからだったorz
Opera/9.01 (Windows NT 5.0; U; ja)
javaScript 確実にonにしてることがわかると、なんか仕込まれたりしない?>リンク先とか
そんな事を画策するまでもなく、多くの人はIEの初期設定のままで、 あんなことやこんなことができてしまうのです。 と、2chの穴を突いた経験談から。
自動更新のあった次の日に「勝手に再起動すんなボケ!」ってスレが立つくらいだしね。
673 :
ひろゆき@どうやら管理人 ★ :2006/08/20(日) 00:53:18 ID:???0 BE:454289-DIA(30710)
どうすか。どうすか。
674 :
root▲ ★ :2006/08/20(日) 00:59:10 ID:???0 BE:3192757-PLT(15700)
先生、催促しているようにも見えます(,,゚Д゚)∩
僕は規制ちゃん!
677 :
root▲ ★ :2006/08/20(日) 01:00:20 ID:???0 BE:1915373-PLT(15700)
BE 表示部分普通にかっこいいな
679 :
root▲ ★ :2006/08/20(日) 01:01:00 ID:???0 BE:5107687-PLT(15700)
Be表示部分に車体を使うの、個人的にやめて貰いたいんだけど、らめ? 俺は大丈夫だけど、環境によっては読みにくかったりするんだ。
681 :
root▲ ★ :2006/08/20(日) 01:03:31 ID:???0 BE:5107878-PLT(15700)
682 :
ひろゆき@どうやら管理人 ★ :2006/08/20(日) 01:04:52 ID:???0 BE:76234-DIA(30710)
斜体はたしかに読みづらいすね。 l50をつけなくても動くようにしたほうがいい予感です。
まぁ,実用化するならブラウザの振り分けも決めなきゃならないってことで, dso も tasukeruyo を有効にしてもらった方がいいのかな.
684 :
root▲ ★ :2006/08/20(日) 01:07:13 ID:???0 BE:3831067-PLT(15700)
SunOsさんの超技術でアンカーポップアップ導入もお願いします><
>>681 そっか。
非 JavaScript 版は URL 中の read.html を read.cgi に
↑
の動作がJavaScriptで動いてるみたいなんだけど、これは未対応ブラウザのためのものであって、
JavaScript自体が使えない人のためのものではないの?
で、その辺がめんどくさかったりするから全部クライアントにやらせず鯖にも働いてもらいましょみたいなことを
この前言ったんだけど、それは無理なの?
>>677 直接 URL 入力すると云々っていう location.hash 形式の問題とかではなくて?
>>680 BE がイタリックになるのは BE チェックでレス非表示にした場合で,
デフォルトではイタリックにしてるつもりはないんですが,デフォルトでも
イタリックになっちゃうんですか?
>>686 それは,ローカルファイルに保存するのに非 JavaScript 版への
リンクもあった方がいいっていう意見もあったために入れますた.
未対応ブラウザについては,subback.html / index.html のリンク自体が従来版向けになります.
>>687 どっちにしろ使う人が居ることは事実だから斜体はやめた方がいいかなと…
まぁ俺の環境では動いた感があって良いんだけどwww
どうしても動かしたいのなら
cssで囲い(上下左右全部とは言わず)を付けたり、レス番を光らせたり、下線を付けたりしてみるといいかも
>>688 おk把握
690 :
root▲ ★ :2006/08/20(日) 01:25:35 ID:???0 BE:1642829-PLT(15700)
>>683 done.
>>687 >
>>677 直接 URL 入力すると云々っていう location.hash 形式の問題とかではなくて?
IE6 ではうまくないみたい。
他の人はどうなのかな。
>>690 なんかわかったような......パフォーマンスも多少は上げられないかと
試行錯誤してた時にエンバグしたようで......直します......
>>689 つまり,BE チェックで非表示にしたレスでもイタリックにしない,
って意味ですか?
DOMソースでみるとitalic付いてますね。
>>691 グレーにするとかどうですか?
>>693 それがエンバグしてた部分で......直しますた.
下一行は了解です.これは be.js 側ですね.
695 :
root▲ ★ :2006/08/20(日) 01:46:37 ID:???0 BE:3648285-PLT(15700)
696 :
root▲ ★ :2006/08/20(日) 01:47:03 ID:???0 BE:1368735-PLT(15700)
で、be.js を更新してくるです。 dso にあるやつを入れればいいのかしら。
>>694 お疲れさん。寝るお
規制いつ解けるのかな…
★餅って規制関係ないんだよね?快適だね。
ソリティアの色がウ○コ色といわれたですのでもうちょっと違う色ないですかね?
699 :
root▲ ★ :2006/08/20(日) 01:50:41 ID:???0 BE:3284249-PLT(15700)
700 :
root▲ ★ :2006/08/20(日) 01:51:52 ID:???0 BE:6566898-PLT(15700)
>>697 いや、モバイル系は prin と IIJmio 使っているので、
もろに該当です(困っているです)。
701 :
root▲ ★ :2006/08/20(日) 01:54:30 ID:???0 BE:1459744-PLT(15700)
703 :
root▲ ★ :2006/08/20(日) 02:07:15 ID:???0 BE:5837388-PLT(15700)
>>702 > ただ,イタリックを変えるとか色を変えるとかで
> 再びお手数をおかけするかもですが......
それは承知しているですよ。
色については、その道のかたがやってくれるかなと。
ということで、今日の私はそろそろおひらき。
705 :
root▲ ★ :2006/08/20(日) 11:43:58 ID:???0 BE:1915373-PLT(15700)
>>704 www2 に入れました。 < be.js
>>705 乙です.www2 のを読み込むように戻しますた.
for (var i = 0; i < document.links.length; i++)
if (/^
http:\/\/ (?:\w+\.)?(?:2ch\.net|bbspink\.com)\/test\/read\.cgi\/?/.test(document.links[i].href)) {
document.links[i].normalize();
var data = document.links[i].firstChild.data, isEqual = document.links[i].href == data;
document.links[i].href = document.links[i].href.replace(/read\.cgi(\/)?/, function(s, slash) { return "read.html" + (slash ? "#" : ""); });
document.links[i].firstChild.data = isEqual ? document.links[i].href : data;
}
対処するとすれば↑,ついでに PATH_INFO 形式をデフォルトにするなら↓かな......
document.links[i].href = document.links[i].href.replace(/read\.cgi(\/)?/, function(s, slash) { return "read.html" + (slash ? "/" : ""); });
711 :
◆IDaU21y6wI :2006/08/24(木) 00:18:03 ID:b6jszFiD0 BE:47903663-BRZ(7007)
operate2 はアレがあるから切ったような・・・
712 :
モーマン☆鯛。 :2006/08/24(木) 00:24:38 ID:eVQaOOza0 BE:3897656-PLT(12347)
ひろゆきママンの掃除機か!!
714 :
root▲ ★ :2006/08/25(金) 01:24:08 ID:???0 BE:3283294-PLT(15700)
>>713 PATH_INFO がデフォルトになったということは、
www2 に置いてある js も、更新が必要なのかしら。
>>714 be.js には影響なしです.subback.html / index.html の方を揃えてもらえば
PATH_INFO 形式デフォルト化は完了ってことで.
716 :
root▲ ★ :2006/08/25(金) 01:36:39 ID:???0 BE:365322-PLT(15700)
subback.html と index.html ってことは、bbs.cgi ですか。 お手数ですが、dso サーバの bbs.cgi の UpdateSubback と MakeIndex4PC にある、 if(&IsReadHtml($GB)) なところの JavaScript 部分を、 SunOS さんのほうで、ごにょごにょしていただけると助かります。 問題がなければ、オリジナルに反映しておくです。
718 :
root▲ ★ :2006/08/25(金) 01:56:39 ID:???0 BE:730324-PLT(15700)
>>717 どもです。オリジナルに反映し、dso にも入れなおしました。
720 :
root▲ ★ :2006/08/25(金) 16:39:25 ID:???0 BE:1916137-PLT(15700)
そんなわけで「2ちゃんねる」リンクがついたので、 read.html でも対応すると、よいと思うのです。
read.cgiどころかsubback.htmlやindex.htmlまでJavascriptで生成とは 夢が広がりんぐだな。
レス数によっては、[全部読む]がやっぱり重いね。 [全部読む]でも、一気に表示しないで、だんだんとレス追加みたいな感じのが良いのかな。 続きを読むをクリックすると、レスが追加されてく感じ。 そっちの方がAjaxっぽいし。
>>723 >一気に表示しないで、だんだんとレス追加みたいな感じのが良いのかな。
>続きを読むをクリックすると、レスが追加されてく感じ。
そういう方がいいという人は,上の方の「1- 101- 201-」とか
下の方の「前100 次100」を利用してもらうということで.
「全部」で全部表示されないというのも,看板に偽りありという
気がしないでもないんで......
「大きなスレで『全部』は重いですよ」というのは JavaScript 版での
注意事項として周知する方向で.
「全部」をクリックしたら警告が出るようにしてみますた. (read.js を分離したのでキャッシュクリアとかしないと反映されないかも)
>>725 乙です
「それでもいいですか」ってのがなんか脅しっぽいwww
>>727 毎回「全部」をクリックする人って少ないんじゃないかな
少なくとも専ブラ使わないときは全部を選んでいる
警告出すのは,レス数が 400 以上またはサイズが 250 kB 以上の場合だけにしますた.
何か......IE 6 だと a.href を書き換えた場合,新しい href の既読・未読が
リンク色に反映されない模様(書き換える前のリンク色のままになる).
となると,subback.html / index.html でわざわざ↓みたいにしなきゃならんのか......
# IE 7 はどうなんだろう......?
var isIE6 = navigator.userAgent.indexOf("MSIE 6.0") > 0;
for (var i = 0; i < document.links.length; i++)
if (/^
http:\/\/ (?:\w+\.)?(?:2ch\.net|bbspink\.com)\/test\/read\.cgi\/?/.test(document.links[i].href)) {
document.links[i].normalize();
var data = document.links[i].firstChild.data, isEqual = document.links[i].href == data;
document.links[i].href = document.links[i].href.replace(/read\.cgi(\/)?/, function(s, slash) { return "read.html" + (slash ? "/" : ""); });
if (isIE6) {
document.links[i].firstChild.data = isEqual ? document.links[i].href : data;
document.links[i].parentNode.replaceChild(document.links[i].cloneNode(true), document.links[i]);
}
else if (isEqual)
document.links[i].firstChild.data = document.links[i].href;
}
read.js でも
>>731 と同じ問題への対処 done.
733 :
ひろゆき@どうやら管理人 ★ :2006/08/27(日) 21:55:05 ID:???0 BE:403788-DIA(30718)
うほ。
うへ。
まぁ,月が変わる頃にはいろんな意味でいろいろ動き出すでしょう......
736 :
動け動けウゴウゴ2ちゃんねる :2006/08/28(月) 13:30:57 ID:VbslbRUI0
>>736 >読み込み完了するまでスレの正体がわからないのはどうなんだろう
読み込まなきゃわからないのはどうしようもないのでは......と思ったけど
>
http://dso.2ch.net/test/read.html/myanmar/1155416372/ これは,ライブな dat が存在しない場合の扱いがいかがなものか,って意味なのかな?
鯖側で動く read.cgi と違って過去ログをあさることはできないので,別途鯖側で
何らかの I/F を用意しない限り,過去ログの存在の有無を知らせることは不可能ですね.
ただ,エラーメッセージをもっと親切な内容にしたらどうか
ってことであれば,いい提案があれば採用する方向で.
しかし......現状ではファイルが存在しない場合一律に
http://www2.2ch.net/live.html に飛ばしてくれるんですが,
XMLHttpRequest の仕様上別鯖には逝けないんでちょっと困った状態に......
IE -> "Unknown" というわけわからんステータス
Firefox -> "302 Found"
Opera -> 一回目は "302 Found" だが,二回目以降 send() の時点で Security violation の例外発生
元々 live.html に飛ばすのは read.cgi を止めた場合の人大杉の
ためのもののはずだと思うんで......せめて dat の場合だけでも普通に
"404 Not Found" を返してくれればもうちょっと扱いやすくなるような......
ErrorDocument 404
http://www2.2ch.net/live.html <Files *.dat>
ErrorDocument 404 default
</Files>
>書き込み欄とメッセージは別フレームみたいに出来ないかね
フレームだと,かえって今までと使用感が異なることに違和感を持つ人が
結構出てきそうな気も......ただ,フレームでなく position: fixed;
を用いることにすれば,従来と同じ形態との切り替えも容易なので
採用できそうな気もします.ただ問題は,IE 6 だと position: fixed;
が効かないという(IE 7 はどうなんでしょ?)...... かと言って
onscroll で追いかけて動かすのは船酔いしそうな気持ち悪い動きになるし.
「その機能を使いたい人は IE 6 以外を使って下さい」って形でもいいなら
単純明快にできそうですが.
738 :
ひろゆき@どうやら管理人 ★ :2006/08/28(月) 17:44:26 ID:???0 BE:133237-DIA(30719)
ライブなdatが存在しない場合は、read.cgiにリダイレクトしちゃうとか。。
ひろゆきがまともなことを言ったので明日は雨
>>738 そういうのも一案ですが......
・ *.dat の ErrorDocument 404 を DSO プログラムに振る.
・ その DSO プログラムが過去ログを調べ,存在すれば今の read.cgi のように
最初と最後のレスだけ抜き出して返すなどする.
のようなことをすれば,read.html のみならず雪だるまの read.cgi で
過去ログの存在を認識できない問題もついでに解決できるかも知れない予感......
741 :
ひろゆき@どうやら管理人 ★ :2006/08/28(月) 19:48:23 ID:???0 BE:403788-DIA(30719)
それをやっちゃうと、結局処理が挟まっちゃうので、 .htmlにしてるメリットが薄れませんか?
スレッドが無かった時だけでしょ。 read.cgiに飛ばすのも、処理挟むので同じじゃん。
>>741 >>742 の通りで,dat が存在しない場合(普通なら "404 Not Found"
が返る場合)のみ DSO プログラムに振られるってことで.
744 :
ひろゆき@どうやら管理人 ★ :2006/08/28(月) 20:59:18 ID:???0 BE:151564-DIA(30719)
おぉ、、DSOすげー。 んでは、それでいいと思いますー。
745 :
◆TWARamEjuA :2006/08/28(月) 21:28:24 ID:TOdGXpA90 BE:4356858-BRZ(6666)
(´-`).。oO(「Apacheすげー」だとおも♪)
IISとかでも不可能ではない
コンピューターすげー
宇宙すげー
750 :
root▲ ★ :2006/08/29(火) 17:52:27 ID:???0 BE:1460328-PLT(15702)
>>749 /var/tmp の下は激しくいまいちなので、
home directory 配下のある場所に mv しました。
ありかは、ちとお取り込み中が終わってから。
(見ればわかるといううわさも)
>>750 場所確認しますた.
# 実は,個人環境では /var/tmp が全然 temporary じゃない状態になってたりします......w
専ブラの話だけど、スレが無い時のステータスコードを302で決めちゃってるのが 多いのかしらね。 以前も、新仕様鯖だったかで、404になるのに対応できないブラが右往左往 していたっけね。 (ルート付きを始めた時だっけ?)
302は変えないほうがいいと思う
>>752-753 悪影響が出る専ブラには,User-Agent で判定して 302 返すようにしますかね......
XMLHttpRequest は外部鯖向け 302 との相性が悪いってのもあるし,
仮にそれに対応させたとしても,過去ログの存在を確認するために別 URL で
改めてアクセスするとなると HTTP リクエスト数が増加する方向に働くことになるんで,
JavaScript 版やる上では ErrorDocument で pastdat.so に振り向けるやり方の方が
スマートかなって気もしないではないんで......
ついでに●ログインとかもやってみようかと思ったけど,それやるには
mod_ssl と mod_proxy が使える 2ch.net ドメインの鯖もないとダメポな予感......
302はgetResponseHeader('Location')した後location.hrefなりwindow.openなりすればいいんじゃね?
>>755 というか,302 のジャンプ先にある live.html を表示しても仕方ないんで......
要は read.cgi と同様に,ライブな dat が存在しない場合に過去ログの有無を調べ,
過去ログがある場合に最初と最後のレスだけ抜き出して表示する,ってのが目的なんで.
とりあえず ^(Mozilla|Opera|Lynx|Wget)/ のような感じの,専ブラと関係なさそうな
User-Agent の場合だけ 404 等のを返し,それ以外は 302 を返す形にしてみますた.
live.html自体は人大杉だけど302は前からそうなっているからなあ 今もバナーでてるけど広告的な意味もあるのかな? >●ログイン 2chの鯖を介さずにブラウザ側で直接ログインできるならいいけど そうじゃないならちょっと・・・
pastdat.soみたいな、専用モジュールの追加もアリという前提ならば 将来的には.datの必要部分のみ取得というモジュールというのも視野に入れても良さそうな感じ。 昔のread.cgiのrawmodeみたいに、レス番やlxxで。 といっても、'\n'の検出を毎回鯖がやらなきゃいかんので ある程度の数の.datの行頭探索結果はメモリ上に保持しておいて、とか それ以前に、行頭はbbsdで完璧に把握できるのだから、bbsdと連携して、とか read.cgiもbbsdと交信して行頭情報を取得したり、とか などの話にも発展させられそうな。 TCPでモジュールとbbsdが交信するようにすれば 大きいデータ(.dat本体とか)も扱えるだろうし 接続しっぱなし(SO_KEEPALIVEであぼん検出)みたいにすれば JumboFrameも使えるし、負荷的にはUDPと大差ないと思うんですがどうでしょうね。 (多数のコネクションを効率的に扱うサーバーの造りは、UDPよりずっと大変でしょうが)
>>757 html ならともかく dat を直接ブラウザで表示する人はあまりいないだろうと
いうことと,専ブラや read.html のようなものが dat を取得するのは
直接表示するためではないので,dat へのアクセスを別の場所に飛ばすのは
広告としてもあまり意味がないような気がします.ともあれ,
>>744 で
Go サインは頂いたと思いますので,とりあえずこの路線で.
●ログインは,pastdat.so の機能を拡張すればシームレスな過去ログ表示も
可能になりそうとちょっと考えたんですが,認証サーバは 2ch.net とは
別ドメインにあるので,
>>754 でも述べたように認証サーバへの橋渡しをする
プロクシ鯖を別途用意しなきゃダメポなようですね.
>>758 pastdat.so は,ErrorDocument 404 で振られた場合だけ呼ばれるので......
あと上の方でも話がありましたが,部分取得しつつキャッシュを有効活用するなら
ブラウザが備えてるのとは異なるキャッシュ機構がないとうまく機能しないので,
ローカルストレージに直接アクセスできない限り困難,つまり
JavaScript でやってる限りは困難じゃないかと.
ちなみに,bbsd は subject.txt のデータはオンメモリで管理してますが,
dat は単純に O_APPEND モードで追記してるだけなのでオンメモリでは管理してません.
「差分取得」ではなく「部分取得」のつもりだったのですが。 、、と、もしかして、 既に現状のread.htmlが、リクエストのURIを解析して .dat全体の中から必要な部分だけを転送するようになっているのですかね。 bbsdに関しては、現在は管理していないのはわかりますが 「何バイト書き込むか」を確実に把握出来るので 初回はともかく(再起動に備えて別ファイル等も必要でしょうが) 行頭情報を常時保持しても大きな負担にはならないとの考えからです。
あ、ごめんなさい、補足。 つまり、「必要個所だけを転送する」ためには、行頭情報が必要で 可能であればそれをキャッシュしておきたい、という考えがあるのですが、 そのキャッシュをbbsdと別に持つとすると、毎回stat()をかけなければいけない というのがあります。 fstat()ならまだしも、stat()はアクセス権チェック等もあることから 「可能ならば省略したい処理」になるのではないかと。 で、bbsdならば、更新確認のstat()が不要なままで、 確実な行頭情報を得られるということですね。
>>760-761 いや,現状では dat は単純に全体を取得してます.
差分取得にしろ部分取得にしろ,キャッシュの有効活用との
両立は困難だと思うんで.例えば細切れな dat の断片を
いくつも管理するとか複雑な処理をして両立しようとしても,
その断片ごとに(If-Modified-Since 付きではあっても)
HTTP リクエストが多数発生するとかになって,
果たして苦労する割に得るものがあるだろうか,と......
それから,書き込みとの関連の薄い処理まで bbsd にやらせることを
考えるぐらいなら,フロント側で mod_cache を有効化するなどを
やる方が先決じゃないかと.bbsd の仕事を増やすというのは
すなわちバックエンド側の仕事を増やすということにもなりますし.
>756 逆に、Monazilla/1.00 だけ302の方がすっきりしません?
>>763 専ブラは全部 Monazilla/* っていう User-Agent なんでしょうか?
それなら確かにその方がすっきりしますが......
>>764 個人的には,dat が存在しないのは 302 の場合だけという決めうちは
手抜きだなぁ,そういう決めうちプログラムの側が是正されるべきだよなぁ,
と確かに思うんですが,かといって経過措置も何も考えずにやると
いろいろ混乱を来しそうで......
てか、1.00とか適当なことを言ってないで有効活用すればいいじゃん。 1.1とか2.0とか。
767 :
◆TWARamEjuA :2006/08/30(水) 21:31:42 ID:3/7Hf8HC0 BE:4574467-BRZ(6666)
404より410の方が妥当な悪寒。。。
> User-Agent 通常のdat読みでは義務ではありませんが、以前にはMonazilla/1.00だけが dat読みを許されていたこともあり、現在でも非常に強く推奨されており、 実際、ほとんど(おそらく全て)がそうなっています。 ちなみに、●使用ではUAが厳しく指定されています。
>>768 L〜もG〜もW〜もMonazillaじゃないぞ
>>767 多くのケースでそうかも知れませんが,スレ移動で今までなかった dat が出現するとか,
dat 落ちしたのが復活するとか,ということもまれにない訳でもないかと......
>>768 なるほど......ってことで,Monazilla/ の場合だけ 302 にしますた.
>>769 ありゃ,すれ違っちゃった......となると,その L?, G?, W?
ってブラウザがどういう挙動を示すかが問題か......
dat落ちについてはLocationがおかしいだけで302は妥当なのかも LocationはMUSTじゃないからあえて含めないで 本文にdat落ちのメッセージ入れてみるとか (どういう動作になるかわからんけど)
Live2chもギコナビもぎこはにゃんもMonazillaだし、W?シラネ、Mac?モットシラネ。 既に言われているように、本来は専ブラ側が対応するものなので、 細かい所まで気にしなくても良いんじゃないですかね。 302決め撃ちばかりとも限らないし。
774 :
◆TWARamEjuA :2006/08/30(水) 23:34:09 ID:3/7Hf8HC0 BE:2178645-BRZ(6666)
レスポンスを細分化することは可能であっても(3**返すとか4**返すとか)それに見合った負荷対策は? と考えるとでんでんメリットが少ない気もするですね(苦笑) *.datの取得に関しては「UAでMonazillaを返してこないのは、専用ブラジャー以外」と決め込んでしまって良いんじゃないかな。 ・・・を前提にしつつHTTP仕様にも沿って欲しいよなぁとかとか(どっちやねん)
ああそうか、Monazillaは302にするということは、pastdat.soを使わないということであり、 サーバ側の処理を省くことになる、という2ch側の理由もありえるのか。
よく考えたらread.htmlでアクセスするのはdat-utf8とdatxだから そっちだけ変えればいいんでは?
>>772 >dat落ちについてはLocationがおかしいだけで302は妥当なのかも
これは一理あるかも.ただ,元々 dat がないケースだと 302 では
本来おかしいですし,404 等の方がふさわしいし扱いやすいと
いうところで,今回やってる方針のメリットはあるかなぁと......
>>773-774 とりあえず,Monazilla だけ 302 にする,ということで様子見の方向で.
>>775 というか,Monazilla の判定は pastdat.so 内でやってます.
ErrorDocument ディレクティブでは User-Agent での条件分岐とかできませんし,
仮にできても .htaccess のディレクティブを毎リクエストごとにパースして
条件分岐するよりは pastdat.so 内で分岐する方が軽そうな気がしますし
(*.so は Apache モジュールでの処理とほぼ同等ですし).
>>776 この件だけ考えればそうかも知れませんが,現状雪だるま鯖の
read.cgi が過去ログの存在を認識できない問題への対処というのも
視野に入れてるんで......
> Monazilla の判定は pastdat.so 内でやってます. そなんすかー。 2ch側が積極対応する口実を見っけたと思ったのにー。 ああでも、過去ログの情報でdat開くよりは、単に302だけの方が軽いかな、 とかなんとかまだこだわってみる。
>>778 まぁ,Monazilla 以外の User-Agent の専ブラで悪影響が出るのがあったら
その時にまた対処するってことで......
>>731 に対応ブラウザの判定を入れる(ただし dso では判定にかかわらず
全部 read.html に振る)とこうなるかな.IE 4 やネスケ 4 では
try / catch でエラーになるだろうけど,エラーでスクリプトが止まって
URL 書き換えも実行されないなら,それはそれでよしってことでw
----------------------------------------------------------------------
try {
if (/MSIE (?:[6-9]|\d{2,})\D|rv:(?:1\.(?:[89]|\d{2,})|[2-9]|\d{2,})\D.*Gecko\/|Opera\/(?:[89]|\d{2,})\D/.test(navigator.userAgent)
|| location.hostname == "dso.2ch.net") {
var isIE6 = navigator.userAgent.indexOf("MSIE 6.0") > 0;
for (var i = 0; i < document.links.length; i++)
if (/^
http:\/\/ (?:\w+\.)?(?:2ch\.net|bbspink\.com)\/test\/read\.cgi\/?/.test(document.links[i].href)) {
document.links[i].normalize();
var data = document.links[i].firstChild.data, isEqual = document.links[i].href == data;
document.links[i].href = document.links[i].href.replace(/read\.cgi(\/)?/, function(s, slash) { return "read.html" + (slash ? "/" : ""); });
if (isIE6) {
document.links[i].firstChild.data = isEqual ? document.links[i].href : data;
document.links[i].parentNode.replaceChild(document.links[i].cloneNode(true), document.links[i]);
}
else if (isEqual)
document.links[i].firstChild.data = document.links[i].href;
}
}
} catch(e) {}
----------------------------------------------------------------------
さらに,検索エンジン等外部リンクから飛んできた場合に対応ブラウザなら
read.html に振るとするとこうかな.dso では %{HTTP_USER_AGENT} の行は
コメントアウトで.
----------------------------------------------------------------------
RewriteCond %{HTTP_USER_AGENT} MSIE\s(?:[6-9]|\d{2,})\D|rv:(?:1\.(?:[89]|\d{2,})|[2-9]|\d{2,})\D.*Gecko/|Opera/(?:[89]|\d{2,})\D
RewriteCond %{HTTP_REFERER} ^
http:// RewriteCond %{HTTP_REFERER} !^
http:// (?:\w+\.)?(?:2ch\.net|bbspink\.com)/(?:\w+/(?:|(?:subback|index)\.html)$|test/read\.(?:html|cgi)[#/]?)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1 [R]
----------------------------------------------------------------------
781 :
ひろゆき@どうやら管理人 ★ :2006/09/05(火) 05:12:07 ID:???0 BE:63825-DIA(33396)
783 :
ひろゆき@どうやら管理人 ★ :2006/09/05(火) 13:51:45 ID:???0 BE:151283-DIA(33396)
blackgoatとか、read.htmlとかで共有datスペースを作ったほうが 効率いいのかなぁ、、とか思ったです。
>>783 そういうことですか.アイデア的には面白そうですが,
現在独立してる各サーバを dat スペースを共有する形に再編するのは
結構大がかりな作業になりそうなのと,以前雪だるまで NFS 使ってた
時のように虫踏んで苦しむことにならないか,ってあたりが課題かもですね.
FreeBSD だと GEOM gate とか使うことになるのかな......?
785 :
root▲ ★ :2006/09/05(火) 16:29:51 ID:???0 BE:1094562-PLT(15755)
786 :
root▲ ★ :2006/09/05(火) 16:31:05 ID:???0 BE:1459744-PLT(15755)
>>784 そのへんは、、、。send-pr しまくりかしら。
とりあえず hrs さんにしかられない方向で。
787 :
動け動けウゴウゴ2ちゃんねる :2006/09/14(木) 19:30:15 ID:6gFSb2eF0
早くVIPにこれ導入してくれよ
まだ出来てないよ
時代の先を目指しているようで 実は時代と逆行しているような気がするのは気のせいだろうか。 でも出来上がりは楽しみだな。
まぁ,一応動く形になってるという意味ではできてないというわけでもないとは思いますが, 何かきっかけがあれば動き出すかも,今はそのきっかけ待ちという状態かな......
待ってるだけじゃだめだよ
まぁ,dso 以外の鯖でも動かすには他の鯖にこれを入れられる人が動いてくれることも前提なんで......
一応,必要な手順をまとめておこう......
・ read.js は www2 に入れる.ついでに,be.js も若干変更してるので,それも更新.
・ read.html は各鯖に入れる(雪だるまではフロント側).
・ subback.html, index.html の JavaScript 部分を
>>780 前半のように変更 (bbs.cgi).
・ httpd.conf か .htaccess に
>>780 後半の設定を入れる.
・ pastdat.so も各鯖に入れる(雪だるまではバック側).
・ pastdat.so 用設定として以下のを httpd.conf か .htaccess に入れる.
<Files *.dat>
ErrorDocument 404 /test/pastdat.so
</Files>
# <Files pastdat.so>...</Files>: スタンドアローンサーバのみの設定.
# リバースプロクシバックエンド(雪だるま)では入れない.
<Files pastdat.so>
AddDefaultCharset Shift_JIS
Header always append Cache-Control max-age=5
</Files>
# httpd 用設定まとめ
LoadModule charset_lite_module libexec/apache2/mod_charset_lite.so
<Location /*/datx/*.dat>
AddDefaultCharset Shift_JIS
Header always append Cache-Control max-age=5
</Location>
<Location /*/dat-utf8/*.dat>
SetOutputFilter XLATEOUT
CharsetSourceEnc CP932
CharsetDefault UTF-8
CharsetOptions NoImplicitAdd IgnoreIlSeq
AddDefaultCharset UTF-8
Header always append Cache-Control max-age=5
</Location>
<Location /test/bbs-utf8.cgi>
SetInputFilter XLATEIN
CharsetSourceEnc CP932
CharsetDefault UTF-8
CharsetOptions NoImplicitAdd IgnoreIlSeq
</Location>
<VirtualHost ...>
# ServerName xxx.2ch.net のところ
AliasMatch ^/(\w+)/dat(?:x|-utf8)/(\d+\.dat)$ /home/ch2xxx/public_html/$1/dat/$2
# 雪だるまでは上記 AliasMatch の代わりに RewriteRule で.
# RewriteRule ^/(\w+)/dat(?:x|-utf8)/(\d+\.dat)$
http://xxxb.2ch.net/$1/dat/$2 [P]
Alias /test/bbs-utf8.cgi /home/ch2xxx/public_html/test/bbs.cgi
</VirtualHost>
# ↑までは httpd.conf で設定.
# ↓以降は httpd.conf / .htaccess どちらでも可.
RewriteCond %{HTTP_USER_AGENT} MSIE\s(?:[6-9]|\d{2,})\D|rv:(?:1\.(?:[89]|\d{2,})|[2-9]|\d{2,})\D.*Gecko/|Opera/(?:[89]|\d{2,})\D
RewriteCond %{HTTP_REFERER} ^
http:// RewriteCond %{HTTP_REFERER} !^
http:// (?:\w+\.)?(?:2ch\.net|bbspink\.com)/(?:\w+/(?:|(?:subback|index)\.html)$|test/read\.(?:html|cgi)[#/]?)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1 [R]
# ↑までは,雪だるまではフロント側で設定.
# ↓以降は,雪だるまではバック側で設定.
<Files *.dat>
ErrorDocument 404 /test/pastdat.so
</Files>
# <Files pastdat.so>...</Files>: スタンドアロンサーバのみの設定.
# リバースプロクシバックエンド(雪だるま)では入れない.
<Files pastdat.so>
AddDefaultCharset Shift_JIS
Header always append Cache-Control max-age=5
</Files>
そろそろexがつくサーバーで試してみましょうぜ
よしex9でよろ
ex14キボン
ex18で
ex18
ひろゆき30歳の誕生日に一斉導入しよう
19才だよ、永遠に
ex16で。
ex11
ex全部でいいじゃん
あえてtmp5復活
そこでqb5
本命 ex16 対抗 ex11,tmp5 大穴 qb6 ?
ex 系もいいですが,さらにそれ以外も付け加えるとすれば,read.cgi が
止められてる鯖とか LA が上昇して人大杉になりやすい鯖とかもですかね.
そのあたりは,鯖の状況も見ながらってことになるでしょうけど.
あと,BE 板がある etc4 とかも...... be.js には旧 BE 板の機能継承という
側面もありますし,さらに dso と同一鯖なので面倒見やすいということも.
それと,今すぐじゃなくてもいいのかも知れませんが,今後の検討課題としては
・ [PR]〜[PR]
・ 関連キーワード
ってのもありますが,これは
>>266 のように JavaScript 変数として
渡してもらう形にすればいいかと.いわゆる JSON ってやつかな.
>>808 >read.cgi が止められてる鯖
2chplusとかは如何
そういえば、過去ログのようなhtmlファイルを最初から作っていく事で read.cgiを使わなくする計画とかもあったよね。大分前に。
asda dawefhawliufh lawg agr awg a
ところで、cgiをphp化するとかは考えてないとか?
ApacheのDSOだったりもしますしね
既にPHPに変えたところでパフォーマンスダウンにしかならないところまで登りつめてるんだよな。 read.cgiってすげーよな。UNIX板ありがとうなんて言ってた頃のあれの面影も残ってねぇw
cgiだった頃のソース放出したりすると差し障りあるのかな? それがC言語版なんかだったりすると互換板的にスゲェ需要あるんじゃ。
818 :
◆TWARamEjuA :2006/11/06(月) 20:21:12 ID:6HE/osbR0 BE:2613683-BRZ(6667)
Common Gateway Interface 言語に依らないのですー♪
DSOはCGIに含まれるの?
820 :
◆TWARamEjuA :2006/11/06(月) 22:09:34 ID:6HE/osbR0 BE:5880896-BRZ(6667)
「DSOが」 ウェブサーバの一部なのか、ウェブサーバの外部のプログラムなのか、と。
822 :
◆TWARamEjuA :2006/11/06(月) 23:49:37 ID:6HE/osbR0 BE:1960463-BRZ(6667)
FastCGI化はしないの?
このスレは静的なHTMLでread.cgiを置き換えるスレですから
825 :
動け動けウゴウゴ2ちゃんねる :2006/11/09(木) 11:54:26 ID:DGHujHbV0
826 :
動け動けウゴウゴ2ちゃんねる :2006/11/09(木) 13:35:16 ID:lhyl8j7NO
動的にpdfを生成すればいいんじゃね?
Flashでやってみるのもおもし(ry
そこはActiv(ry
いっそレスの数だけサーバ立てようぜ 超分散処理最強
いれていれて
そういやFlashで2chブラウザってありそうでないような
携帯限定だけど、Andyってのがあったはず。
IEでスレッドの内容を保存できないという問題は、
saveSnapshotビヘイビアを使って、取得したdatの内容を
退避しておけば解決できるかもしれません。
<textarea id="hiddencache" style="behavior:url(#default#saveSnapshot);display:none;">
(IEでページを保存する時に、ここの内容はそのまま保持される)
</textarea>
テキスト欄にステージデータをコピペして保存してから開くと
プレイ可能なファイルができてる、不思議なサンプル。(テキスト欄がSaveSnapshotになってる)
http://makimo.to:81/ldm/lrc.html
>>834 そういうのがあるんですか.ただ,ローカルファイルへの保存に関しては
例えば Firefox の完全モードでの保存だと HTML の構造自体を変えてしまうだとか,
オンラインでの表示よりもいろいろ考慮しなければならないことも増えてくるので,
とりあえずは従来版 read.cgi の方でやってもらうということで......
これの導入をひろゆきさんへの誕生日プレゼントということで......
838 :
外野ァァン :2006/11/16(木) 00:22:06 ID:rgC5HKwd0
わーいわーい
- read.js / be.js の確認・同期 (www2b => www2f[1-5](= www)) … done? by 管理人 - SunOS さんパッチバージョンの mod_charset_lite を有効にする @ life7 … やりました - test/pastdat.so を入れる @ life7 … done by SunOS さん - httpd.conf を上記のとおり更新して、更新内容を有効にする @ life7 … やりました - bbs.cgi の該当箇所をコメントじゃなくす … まだ
あと、
>>839 に加えて、
- test/read.html を入れる @ life7 … done by SunOS さん
かな。
うまく動いているのかな。 うまく動いているなら、 明日早いので、今日はそろそろ寝る時間かも。
>>842 できたはず。
あとは bbs.cgi の有効化だけですか。
これは、様子を見ながらでも OK かなと。
ちと、今日はこのへんで。
あ、あと read.html の動作確認がありますね。 有効化はそのあとかなと。 すみませんが、動作確認は各位におまかせいたしますです。 read.html を直接使えば、今現在使えているはず。
www2 の同期をしたら、 read.html がうまく動かなくなった予感。
ううむ、ちと私ではわからないですね。 今日は私が、時間切れの予感。すみませんがこのへんで。
む、ブラウザを再起動したりいろいろやっていたら見えるようになった。なんでだろう。 いずれにせよ、今日の私の作業はここまでで。
全部や50をクリックしたときにはdatを取得しなおしてるんだっけ?
>>850 PATH_INFO 形式では別ページに遷移する形になるので
HTTP リクエストが発生しますね(更新されてなければ 304 が返ります).
location.hash 形式では既存のデータをそのまま利用しますが,
現状ではユーザの利便性を優先して PATH_INFO 形式がデフォルトです.
さて,bbs.cgi 更新してみますかね @life7
qb5 と life7 の bbs.cgi 更新 done さてさて......
...気が付かないね
壷は知らんけど、専ブラ知らないでIE使ってる人はそんなこと気にしないような気がする
read.htmlは
>>854 だとどこに集計されるのかしら?
>>835 例えば、hiddencacheが空白だった場合は通常の動作をし、
hiddencacheにデータがあれば保存済みファイルと判断して
そちらから読むという感じです。
IEで保存した後は他のブラウザで開いても読める(はず)という利点もあります。
ただ、IEの仕様変更でいきなり使えなくなったりする怖さもあるので、
やっぱりread.cgiを使ってもらうのが確実ですね。
通常がJAVA表示で表示されない場合はcgiに誘導は?
特に苦情等が押し寄せてないことからすると,特段トラブル等はないということでいいのかな. ただ,統計見ても read.cgi 呼び出し数にもあまり大きな変化がないような...... JavaScript 切ってたりブックマークから直接 read.cgi 呼び出したりしてるユーザが多いってことかな...... あと,デフォルトでは RewriteEngine on は入ってないんですね. RewriteCond / RewriteRule の部分が効いてない悪寒(その部分はぐぐる等 外部リンクから read.cgi が呼ばれた場合 read.html に飛ばす設定).
トラブルが無くて期待はずれとか書くと怒られるかな。
>>860 RewriteEngine On にしてみた。@ life7
863 :
外野ァァン :2006/11/16(木) 12:51:41 ID:WThXHxR60
ではそろそろ全板に
864 :
動け動けウゴウゴ2ちゃんねる :2006/11/16(木) 13:05:15 ID:j2jIwDH6O
全板にやる前に、すぐ苦情を言って来る板にいれた方が。
トラブルってここに書けばいいの?
read.cgi 微減 html dat 微増 その他 激増 Total 2割くらい増 その他ってなんじゃらほい
index.jsとread.jsじゃね?
>>861 まぁ,良くも悪くも静かで拍子抜けって感じかもw
>>862 乙です
>>863 まぁ,大きな問題はなさそうですね.
ただ,右上の [PR]?[PR] は要対応かも(後述).
>>864 元気の良さそうな板のあるところとかですかね.
>>865 とりあえず,そうですね.
>>866 今まで存在しなかった URL (datx, dat-utf8, bbs-utf8.cgi) なのかも......
pv.40.kg がどういう形で集計してるのかよくわかりませんが......
>>867 それがあるのは www2 です.
>>868-869 乙です.dat のは /datx/ もありますね.
で [PR]?[PR] のところですが,例えば www2 あたりに
----------------------------------------------------------------------
var PR = {href:"
http://hogehoge.example.com/ ", text:"ほげほげショップ"};
----------------------------------------------------------------------
のような内容の .js ファイルを置いてもらって,
それを読み込んで表示する形にするといいのかも.
871 :
root▲ ★ :2006/11/16(木) 14:44:03 ID:???0 BE:1459744-PLT(20000)
>>870 datx/ もカウントするようにしました。
PR のところは、管理人も交えてというかんじですか。
# ちと、たぶん夜までオフライン。
>>871 乙です.[PR] のはそうですね.
そういえば
>>457-458 の問題があったのも思い出しますた......
life7% perl -e'print "\x81\x60";' | iconv -f cp932 -t utf-8 | iconv -f utf-8 -t ucs-2be | od -txC
0000000 30 1c
0000002
ってことで,libiconv をパッチ込みで作り直し (
>>478-479 )
ってのもお手数ですがおながいします>むむむさん
# 致命的な問題ではないので,ゆっくりでいいです.
873 :
sage :2006/11/16(木) 17:08:02 ID:AJV8X8Vo0
875 :
外野ァァン :2006/11/16(木) 17:39:56 ID:WThXHxR60
いったん life7 の bbs.cgi の該当箇所を戻しておきます。 read.html の機能は殺さないけど、 デフォルト(index.html subback.html 等)は元に戻るはず。
>>877 done.
ちと、しばらくオフライン。
879 :
ひろゆき@どうやら管理人 ★ :2006/11/16(木) 18:23:13 ID:???0 BE:171239-S★(101205)
sakuのbbs.cgiでread.htmlだとread.cgiに変換するようにするとか。
880 :
外野ァァン :2006/11/16(木) 18:47:02 ID:WThXHxR60
サザンくーん
削除依頼がread.htmlでも別にかまわないんでわ
882 :
ひろゆき@どうやら管理人 ★ :2006/11/16(木) 19:00:02 ID:???0 BE:171239-S★(101205)
削除ツールのほうで対応してないとかの問題だったりするんすかね?
そういうことでないかな。
ん?と,削除依頼で提示される URL が read.html になるのが問題なのであれば, saku / saku2ch の書き込みでは本文中に /test/read.html/... が出てきたら /test/read.cgi/... に変換するとかすればいいとかいうことではなくて?
itadakiオンライン蛾物故割れた
こんな形で依頼が注目されてしまって、ちょっとお気の毒かも。
専ブラの作者さんにも対応してもらわないとな
あるいは,read.cgi という URL のままで read.html の機能を提供できればいいのかも. 例えば,index.html / subback.html 中の JavaScript で URL 書き換えの代わりに Cookie の設定をして, 鯖側ではその Cookie があった場合に mod_rewrite で read.cgi という URL のまま read.html の内容を返す,と.
>>888 の形で bbs.cgi 更新しますた @qb5, life7
んで,mod_rewrite の設定をこうしてもらえばいいかと.
RewriteCond %{HTTP_COOKIE} (?:^|;\s?)READJS="?on"?(?:$|;)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1
RewriteCond %{HTTP_USER_AGENT} MSIE\s(?:[6-9]|\d{2,})\D|rv:(?:1\.(?:[89]|\d{2,})|[2-9]|\d{2,})\D.*Gecko/|Opera/(?:[89]|\d{2,})\D
RewriteCond %{HTTP_REFERER} ^
http:// RewriteCond %{HTTP_REFERER} !^
http:// (?:\w+\.)?(?:2ch\.net|bbspink\.com)/(?:\w+/(?:|(?:subback|index)\.html)$|test/read\.(?:html|cgi)[#/]?)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1
今の rewrite の設定は、
RewriteCond %{HTTP_USER_AGENT} MSIE\s(?:[6-9]|\d{2,})\D|rv:(?:1\.(?:[89]|\d{2,})|[2-9]|\d{2,})\D.*Gecko/|Opera/(?:[89]|\d{2,})\D
RewriteCond %{HTTP_REFERER} ^
http:// RewriteCond %{HTTP_REFERER} !^
http:// (?:\w+\.)?(?:2ch\.net|bbspink\.com)/(?:\w+/(?:|(?:subback|index)\.html)$|test/read\.(?:html|cgi)[#/]?)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1 [R]
ですが、その下に
>>889 を追加すればいい、ということなのかしら。
いや、自分なりに読んでみると、
>>890 の4行のところを、
>>889 の6行と入れ替える、ということかしら。
で、今日はちと限界かも。 明日ということで。
>>891 そうです.今まで external redirect してたのを internal redirect にするってことで.
これで,外面的には read.html という URL を使わずに済むようになるってことで.
VIPに入れてread.cgiとめちゃったら?
>>892 乙です.
とりあえず,今は臨時に test/.htaccess 置いて
RewriteEngine on
RewriteCond %{HTTP_COOKIE} (?:^|;\s?)READJS="?on"?(?:$|;)
RewriteRule /?read\.cgi(/.*)?$ /test/read.html$1
のようにしてます(httpd.conf 側の設定が完了したらこれは消します).
で,これに伴い従来版 read.cgi にアクセスしたい場合用に
read.so を read.cgi に対する symlink として置きますた.
897 :
ひろゆき@どうやら管理人 ★ :2006/11/17(金) 01:35:30 ID:???0 BE:51124-S★(101205)
internal redirectっていう手があるんすねぇ。 面白そうだし、やるだけやってみますか。
てst
ずっと専ブラなんで何が起こってるのか判らんが・・・軽くなるならいいぞ
>>897 一日過ぎたが誕生日おめ
某スレを見ようとブクマをクリックしたら いきなりスレイプニル1.66が不正終了(でも何故かアプリ自体は落ちない)して 「読み込み中」の表示が出たまま固まったから何事かと思ったよ。 アプリ再起動したら普通に読み込めるようになったけど。
901 :
動け動けウゴウゴ2ちゃんねる :2006/11/17(金) 06:05:02 ID:YDdxhA3F0
うちのjavaコンソールで見れないんですが。 専ブラのギコナビ、マカフィ導入したらスレが見れなくなって 使えなくなったから、IEで見てるんだけど。
>>900 ん〜たまたま落ちたのか,それとも特定の条件で再現するのかが問題ですが,
また落ちるようなら知らせて下さい.
>>901 Java コンソールは Java アプレット(JavaScript とは別物)で発生するエラーメッセージ等を
表示するものじゃないかと...... それとも,IE でスレ表示自体ができないんですか?
オペラと火狐は問題なかったけど読み込む時にもっさりしてる