X



read.cgi 2006―JavaScriptはCGIの夢を見るか

■ このスレッドは過去ログ倉庫に格納されています
NGNG
read.cgiをjavascriptで実現させるプロジェクトのスレッドです。

テスト版
http://sunos.saita.ma/read-js/test/read.cgi
http://sunos.saita.ma/read-js/test/read.cgi/operate/1153615149/
2006/08/20(日) 00:59:27ID:saHukmfv0
先生、催促しているようにも見えます(,,゚Д゚)∩
2006/08/20(日) 01:00:06ID:wuf7kbVG0
僕は規制ちゃん!
677root▲ ★
垢版 |
2006/08/20(日) 01:00:20ID:???0?PLT(15700)
ありゃ、l50 ってつけないと私の環境では変化しないみたい。

http://dso.2ch.net/test/read.html#myanmar/1155409133/l50
2006/08/20(日) 01:00:53ID:Tgt+NvhB0
BE 表示部分普通にかっこいいな
679root▲ ★
垢版 |
2006/08/20(日) 01:01:00ID:???0?PLT(15700)
>>675
やっぱり?
2006/08/20(日) 01:02:28ID:wuf7kbVG0?DIA(41778)
Be表示部分に車体を使うの、個人的にやめて貰いたいんだけど、らめ?

俺は大丈夫だけど、環境によっては読みにくかったりするんだ。
681root▲ ★
垢版 |
2006/08/20(日) 01:03:31ID:???0?PLT(15700)
>>680
そのへんは、ここでわいわいと。
682ひろゆき@どうやら管理人 ★
垢版 |
2006/08/20(日) 01:04:52ID:???0?DIA(30710)
斜体はたしかに読みづらいすね。

l50をつけなくても動くようにしたほうがいい予感です。
2006/08/20(日) 01:05:43ID:Xm+GrVIr0
まぁ,実用化するならブラウザの振り分けも決めなきゃならないってことで,
dso も tasukeruyo を有効にしてもらった方がいいのかな.
684root▲ ★
垢版 |
2006/08/20(日) 01:07:13ID:???0?PLT(15700)
>>683
すぐできるので、やっておくです。
2006/08/20(日) 01:08:28ID:kgBia6Rr0
SunOsさんの超技術でアンカーポップアップ導入もお願いします><
2006/08/20(日) 01:08:34ID:wuf7kbVG0?DIA(41778)
>>681
そっか。

非 JavaScript 版は URL 中の read.html を read.cgi に

の動作がJavaScriptで動いてるみたいなんだけど、これは未対応ブラウザのためのものであって、
JavaScript自体が使えない人のためのものではないの?

で、その辺がめんどくさかったりするから全部クライアントにやらせず鯖にも働いてもらいましょみたいなことを
この前言ったんだけど、それは無理なの?
2006/08/20(日) 01:09:33ID:Xm+GrVIr0
>>677 直接 URL 入力すると云々っていう location.hash 形式の問題とかではなくて?

>>680 BE がイタリックになるのは BE チェックでレス非表示にした場合で,
デフォルトではイタリックにしてるつもりはないんですが,デフォルトでも
イタリックになっちゃうんですか?
2006/08/20(日) 01:12:37ID:Xm+GrVIr0
>>686 それは,ローカルファイルに保存するのに非 JavaScript 版への
リンクもあった方がいいっていう意見もあったために入れますた.
未対応ブラウザについては,subback.html / index.html のリンク自体が従来版向けになります.
2006/08/20(日) 01:22:28ID:wuf7kbVG0?DIA(41778)
>>687
どっちにしろ使う人が居ることは事実だから斜体はやめた方がいいかなと…

まぁ俺の環境では動いた感があって良いんだけどwww

どうしても動かしたいのなら
cssで囲い(上下左右全部とは言わず)を付けたり、レス番を光らせたり、下線を付けたりしてみるといいかも

>>688
おk把握
690root▲ ★
垢版 |
2006/08/20(日) 01:25:35ID:???0?PLT(15700)
>>683
done.

>>687
> >>677 直接 URL 入力すると云々っていう location.hash 形式の問題とかではなくて?

IE6 ではうまくないみたい。
他の人はどうなのかな。
2006/08/20(日) 01:31:23ID:Xm+GrVIr0
>>690 なんかわかったような......パフォーマンスも多少は上げられないかと
試行錯誤してた時にエンバグしたようで......直します......

>>689 つまり,BE チェックで非表示にしたレスでもイタリックにしない,
って意味ですか?
2006/08/20(日) 01:35:24ID:9wliRzU50
DOMソースでみるとitalic付いてますね。

>>691
グレーにするとかどうですか?
2006/08/20(日) 01:36:31ID:wuf7kbVG0?DIA(41778)
ライン:327
エラー:'this.texts[...].0'はNullまたはオブジェクトではありません。
URL:http://dso.2ch.net/test/read.html

たまにこのエラーが出る…@http://dso.2ch.net/test/read.html#myanmar/1155409133/

>>691
そうです。分かりにくくてすまn
2006/08/20(日) 01:38:28ID:Xm+GrVIr0
>>693 それがエンバグしてた部分で......直しますた.
下一行は了解です.これは be.js 側ですね.
695root▲ ★
垢版 |
2006/08/20(日) 01:46:37ID:???0?PLT(15700)
>>694
直ったようです。
696root▲ ★
垢版 |
2006/08/20(日) 01:47:03ID:???0?PLT(15700)
で、be.js を更新してくるです。
dso にあるやつを入れればいいのかしら。
2006/08/20(日) 01:47:54ID:wuf7kbVG0?DIA(41778)
>>694
お疲れさん。寝るお

規制いつ解けるのかな…
★餅って規制関係ないんだよね?快適だね。
2006/08/20(日) 01:49:34ID:uH3oUtCL0?S★(110737)
ソリティアの色がウ○コ色といわれたですのでもうちょっと違う色ないですかね?
699root▲ ★
垢版 |
2006/08/20(日) 01:50:41ID:???0?PLT(15700)
このイメージが出ると、いいかも。 < 色
http://mumumu.mu/img/2bp/
700root▲ ★
垢版 |
2006/08/20(日) 01:51:52ID:???0?PLT(15700)
>>697
いや、モバイル系は prin と IIJmio 使っているので、
もろに該当です(困っているです)。
701root▲ ★
垢版 |
2006/08/20(日) 01:54:30ID:???0?PLT(15700)
>>696
done.
2006/08/20(日) 02:03:42ID:Xm+GrVIr0
>>696 >>701 乙です.ただ,イタリックを変えるとか色を変えるとかで
再びお手数をおかけするかもですが......

>>698-699 カラーコードか
http://www.w3.org/TR/SVG/types.html#ColorKeywords
の色名あたりで指定してもらえれば,と......
703root▲ ★
垢版 |
2006/08/20(日) 02:07:15ID:???0?PLT(15700)
>>702
> ただ,イタリックを変えるとか色を変えるとかで
> 再びお手数をおかけするかもですが......

それは承知しているですよ。

色については、その道のかたがやってくれるかなと。
ということで、今日の私はそろそろおひらき。
2006/08/20(日) 07:03:30ID:Xm+GrVIr0
非表示レスはイタリックの代わりに背景をグレーにしますた.
色は http://mumumu.mu/img/2bp/ を一応真似たつもり.
ただ,www2 のは自分では入れ替えられないのでとりあえず
一時的に dso のを読み込むようにしますた.
705root▲ ★
垢版 |
2006/08/20(日) 11:43:58ID:???0?PLT(15700)
>>704
www2 に入れました。 < be.js
2006/08/20(日) 18:56:44ID:Xm+GrVIr0
>>705 乙です.www2 のを読み込むように戻しますた.
2006/08/20(日) 19:48:43ID:TPuNj5iBP
ttp://sunos.saita.ma/inspired/
2006/08/22(火) 21:34:47ID:OG147ChH0
http://dso.2ch.net/myanmar/subback.html

IE 6 で見ると,スレタイが URL に化けちゃってる箇所があるような......
上の方でやってた ime.nu の時と同じバグ(a.href を書き換えると
中身のテキストも書き換わっちゃう)が顕在化してるのかな?
2006/08/22(火) 22:25:50ID:OG147ChH0
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 ? "/" : ""); });
2006/08/24(木) 00:10:04ID:Y+EGPfiv0
そういや operate2 は read.cgi が動いてないんですね.

http://qb6.2ch.net/test/read.cgi/operate2/1097914397/

そういうところに置いてみるのも面白いかも?
2006/08/24(木) 00:18:03ID:b6jszFiD0?BRZ(7007)
operate2 はアレがあるから切ったような・・・
2006/08/24(木) 00:24:38ID:eVQaOOza0?PLT(12347)
ひろゆきママンの掃除機か!!
2006/08/24(木) 12:25:20ID:Y+EGPfiv0
http://dso.2ch.net/test/read.html/myanmar/1155409133/87n
714root▲ ★
垢版 |
2006/08/25(金) 01:24:08ID:???0?PLT(15700)
>>713
PATH_INFO がデフォルトになったということは、
www2 に置いてある js も、更新が必要なのかしら。
2006/08/25(金) 01:32:12ID:BlMYL2I00
>>714 be.js には影響なしです.subback.html / index.html の方を揃えてもらえば
PATH_INFO 形式デフォルト化は完了ってことで.
716root▲ ★
垢版 |
2006/08/25(金) 01:36:39ID:???0?PLT(15700)
subback.html と index.html ってことは、bbs.cgi ですか。

お手数ですが、dso サーバの bbs.cgi の
UpdateSubback と MakeIndex4PC にある、
if(&IsReadHtml($GB)) なところの JavaScript 部分を、
SunOS さんのほうで、ごにょごにょしていただけると助かります。

問題がなければ、オリジナルに反映しておくです。
2006/08/25(金) 01:49:14ID:BlMYL2I00
>>716 ごにょごにょ完了しますた.
718root▲ ★
垢版 |
2006/08/25(金) 01:56:39ID:???0?PLT(15700)
>>717
どもです。オリジナルに反映し、dso にも入れなおしました。
2006/08/25(金) 01:59:51ID:BlMYL2I00
>>718 乙です.
720root▲ ★
垢版 |
2006/08/25(金) 16:39:25ID:???0?PLT(15700)
そんなわけで「2ちゃんねる」リンクがついたので、
read.html でも対応すると、よいと思うのです。
2006/08/25(金) 16:48:38ID:vlmbfQyP0
read.cgiどころかsubback.htmlやindex.htmlまでJavascriptで生成とは
夢が広がりんぐだな。
2006/08/26(土) 00:15:30ID:j4drswue0
>>720 Done.


ブラウザ振り分けの素案として
http://dso.2ch.net/test/read.html/myanmar/1155409133/89n
というのを考えていたりしますが,新たな情報等があれば修正するということで.
2006/08/26(土) 01:50:29ID:P5UFM7680
レス数によっては、[全部読む]がやっぱり重いね。
[全部読む]でも、一気に表示しないで、だんだんとレス追加みたいな感じのが良いのかな。
続きを読むをクリックすると、レスが追加されてく感じ。

そっちの方がAjaxっぽいし。
2006/08/26(土) 02:05:45ID:j4drswue0
>>723
>一気に表示しないで、だんだんとレス追加みたいな感じのが良いのかな。
>続きを読むをクリックすると、レスが追加されてく感じ。

そういう方がいいという人は,上の方の「1- 101- 201-」とか
下の方の「前100 次100」を利用してもらうということで.
「全部」で全部表示されないというのも,看板に偽りありという
気がしないでもないんで......
「大きなスレで『全部』は重いですよ」というのは JavaScript 版での
注意事項として周知する方向で.
2006/08/26(土) 02:48:42ID:j4drswue0
「全部」をクリックしたら警告が出るようにしてみますた.
(read.js を分離したのでキャッシュクリアとかしないと反映されないかも)
2006/08/26(土) 04:30:46ID:IARsdKVR0
>>725
乙です
「それでもいいですか」ってのがなんか脅しっぽいwww
2006/08/26(土) 05:57:20ID:dQy0+7ra0
>>725
でもこれ毎回出たらうざくないですか?
2006/08/26(土) 07:00:43ID:eQA7LPWP0
>>727
毎回「全部」をクリックする人って少ないんじゃないかな
2006/08/26(土) 07:08:04ID:+VscJeze0
少なくとも専ブラ使わないときは全部を選んでいる
2006/08/26(土) 10:29:37ID:j4drswue0
警告出すのは,レス数が 400 以上またはサイズが 250 kB 以上の場合だけにしますた.
2006/08/26(土) 13:57:27ID:j4drswue0
何か......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;
    }
2006/08/26(土) 14:38:07ID:j4drswue0
read.js でも >>731 と同じ問題への対処 done.
733ひろゆき@どうやら管理人 ★
垢版 |
2006/08/27(日) 21:55:05ID:???0?DIA(30718)
うほ。
2006/08/27(日) 22:09:33ID:UhzDUk4SP
うへ。
2006/08/28(月) 00:49:46ID:aw0giLTu0
まぁ,月が変わる頃にはいろんな意味でいろいろ動き出すでしょう......
736動け動けウゴウゴ2ちゃんねる
垢版 |
2006/08/28(月) 13:30:57ID:VbslbRUI0
読み込み完了するまでスレの正体がわからないのはどうなんだろう
http://dso.2ch.net/test/read.html/myanmar/1155416372/

あとさ、たまにスレにたくさんレスがついてて流し読みしながらレス書くときに
書き込み欄が一番下にあると参照しながら書けないから
今まではスレをもういっこ別窓で開いてレス書いたりしてたけど
これ導入するんだったら書き込み欄とメッセージは別フレームみたいに出来ないかね
2006/08/28(月) 16:17:50ID:aw0giLTu0
>>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:26ID:???0?DIA(30719)
ライブなdatが存在しない場合は、read.cgiにリダイレクトしちゃうとか。。
2006/08/28(月) 19:10:40ID:iqkqPW7u0
ひろゆきがまともなことを言ったので明日は雨
2006/08/28(月) 19:40:38ID:aw0giLTu0
>>738 そういうのも一案ですが......

・ *.dat の ErrorDocument 404 を DSO プログラムに振る.

・ その DSO プログラムが過去ログを調べ,存在すれば今の read.cgi のように
  最初と最後のレスだけ抜き出して返すなどする.

のようなことをすれば,read.html のみならず雪だるまの read.cgi で
過去ログの存在を認識できない問題もついでに解決できるかも知れない予感......
741ひろゆき@どうやら管理人 ★
垢版 |
2006/08/28(月) 19:48:23ID:???0?DIA(30719)
それをやっちゃうと、結局処理が挟まっちゃうので、
.htmlにしてるメリットが薄れませんか?
2006/08/28(月) 19:50:12ID:4SktNoiI0
スレッドが無かった時だけでしょ。
read.cgiに飛ばすのも、処理挟むので同じじゃん。
2006/08/28(月) 19:53:50ID:aw0giLTu0
>>741 >>742 の通りで,dat が存在しない場合(普通なら "404 Not Found"
が返る場合)のみ DSO プログラムに振られるってことで.
744ひろゆき@どうやら管理人 ★
垢版 |
2006/08/28(月) 20:59:18ID:???0?DIA(30719)
おぉ、、DSOすげー。
んでは、それでいいと思いますー。
2006/08/28(月) 21:28:24ID:TOdGXpA90?BRZ(6666)
(´-`).。oO(「Apacheすげー」だとおも♪)
2006/08/28(月) 22:57:28ID:4I6xnJUY0
IISとかでも不可能ではない
2006/08/28(月) 23:21:08ID:ps3XaamL0
コンピューターすげー
2006/08/29(火) 06:02:45ID:xqoF9LwE0
宇宙すげー
2006/08/29(火) 15:52:11ID:ff/315++0
pastdat.so ってのを作って,.htaccess に

<Files *.dat>
    ErrorDocument 404 /test/pastdat.so
</Files>

って入れますた.こんな感じで......

http://dso.2ch.net/myanmar/dat/1155416372.dat
http://dso.2ch.net/myanmar/dat/1000000000.dat

http://dso.2ch.net/test/read.html/myanmar/1155416372/
http://dso.2ch.net/test/read.html/myanmar/1000000000/

過去ログの場所は非公開っぽいので,pastdat.c も非公開ってことで.
# とりあえず /var/tmp に突っ込んであります.
750root▲ ★
垢版 |
2006/08/29(火) 17:52:27ID:???0?PLT(15702)
>>749
/var/tmp の下は激しくいまいちなので、
home directory 配下のある場所に mv しました。

ありかは、ちとお取り込み中が終わってから。
(見ればわかるといううわさも)
2006/08/29(火) 23:07:47ID:ff/315++0
>>750 場所確認しますた.

# 実は,個人環境では /var/tmp が全然 temporary じゃない状態になってたりします......w
2006/08/30(水) 01:28:42ID:WivvJ1bL0
専ブラの話だけど、スレが無い時のステータスコードを302で決めちゃってるのが
多いのかしらね。
以前も、新仕様鯖だったかで、404になるのに対応できないブラが右往左往
していたっけね。
(ルート付きを始めた時だっけ?)
2006/08/30(水) 05:33:49ID:sPlw/x6z0
302は変えないほうがいいと思う
2006/08/30(水) 09:20:25ID:cTJmxtft0
>>752-753 悪影響が出る専ブラには,User-Agent で判定して 302 返すようにしますかね......

XMLHttpRequest は外部鯖向け 302 との相性が悪いってのもあるし,
仮にそれに対応させたとしても,過去ログの存在を確認するために別 URL で
改めてアクセスするとなると HTTP リクエスト数が増加する方向に働くことになるんで,
JavaScript 版やる上では ErrorDocument で pastdat.so に振り向けるやり方の方が
スマートかなって気もしないではないんで......



ついでに●ログインとかもやってみようかと思ったけど,それやるには
mod_ssl と mod_proxy が使える 2ch.net ドメインの鯖もないとダメポな予感......
2006/08/30(水) 14:08:23ID:CB3QYUMV0
302はgetResponseHeader('Location')した後location.hrefなりwindow.openなりすればいいんじゃね?
2006/08/30(水) 17:18:32ID:cTJmxtft0
>>755 というか,302 のジャンプ先にある live.html を表示しても仕方ないんで......
要は read.cgi と同様に,ライブな dat が存在しない場合に過去ログの有無を調べ,
過去ログがある場合に最初と最後のレスだけ抜き出して表示する,ってのが目的なんで.

とりあえず ^(Mozilla|Opera|Lynx|Wget)/ のような感じの,専ブラと関係なさそうな
User-Agent の場合だけ 404 等のを返し,それ以外は 302 を返す形にしてみますた.
2006/08/30(水) 18:09:14ID:sPlw/x6z0
live.html自体は人大杉だけど302は前からそうなっているからなあ
今もバナーでてるけど広告的な意味もあるのかな?

>●ログイン
2chの鯖を介さずにブラウザ側で直接ログインできるならいいけど
そうじゃないならちょっと・・・
2006/08/30(水) 18:22:01ID:+7rDruHP0
pastdat.soみたいな、専用モジュールの追加もアリという前提ならば
将来的には.datの必要部分のみ取得というモジュールというのも視野に入れても良さそうな感じ。
昔のread.cgiのrawmodeみたいに、レス番やlxxで。

といっても、'\n'の検出を毎回鯖がやらなきゃいかんので
ある程度の数の.datの行頭探索結果はメモリ上に保持しておいて、とか
それ以前に、行頭はbbsdで完璧に把握できるのだから、bbsdと連携して、とか
read.cgiもbbsdと交信して行頭情報を取得したり、とか
などの話にも発展させられそうな。

TCPでモジュールとbbsdが交信するようにすれば
大きいデータ(.dat本体とか)も扱えるだろうし
接続しっぱなし(SO_KEEPALIVEであぼん検出)みたいにすれば
JumboFrameも使えるし、負荷的にはUDPと大差ないと思うんですがどうでしょうね。
(多数のコネクションを効率的に扱うサーバーの造りは、UDPよりずっと大変でしょうが)
2006/08/30(水) 19:16:13ID:cTJmxtft0
>>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 モードで追記してるだけなのでオンメモリでは管理してません.
2006/08/30(水) 20:04:44ID:+7rDruHP0
「差分取得」ではなく「部分取得」のつもりだったのですが。
、、と、もしかして、
既に現状のread.htmlが、リクエストのURIを解析して
.dat全体の中から必要な部分だけを転送するようになっているのですかね。

bbsdに関しては、現在は管理していないのはわかりますが
「何バイト書き込むか」を確実に把握出来るので
初回はともかく(再起動に備えて別ファイル等も必要でしょうが)
行頭情報を常時保持しても大きな負担にはならないとの考えからです。
2006/08/30(水) 20:14:48ID:+7rDruHP0
あ、ごめんなさい、補足。

つまり、「必要個所だけを転送する」ためには、行頭情報が必要で
可能であればそれをキャッシュしておきたい、という考えがあるのですが、
そのキャッシュをbbsdと別に持つとすると、毎回stat()をかけなければいけない
というのがあります。
fstat()ならまだしも、stat()はアクセス権チェック等もあることから
「可能ならば省略したい処理」になるのではないかと。
で、bbsdならば、更新確認のstat()が不要なままで、
確実な行頭情報を得られるということですね。
2006/08/30(水) 20:33:40ID:cTJmxtft0
>>760-761 いや,現状では dat は単純に全体を取得してます.
差分取得にしろ部分取得にしろ,キャッシュの有効活用との
両立は困難だと思うんで.例えば細切れな dat の断片を
いくつも管理するとか複雑な処理をして両立しようとしても,
その断片ごとに(If-Modified-Since 付きではあっても)
HTTP リクエストが多数発生するとかになって,
果たして苦労する割に得るものがあるだろうか,と......

それから,書き込みとの関連の薄い処理まで bbsd にやらせることを
考えるぐらいなら,フロント側で mod_cache を有効化するなどを
やる方が先決じゃないかと.bbsd の仕事を増やすというのは
すなわちバックエンド側の仕事を増やすということにもなりますし.
2006/08/30(水) 20:37:46ID:WivvJ1bL0
>756
逆に、Monazilla/1.00 だけ302の方がすっきりしません?
2006/08/30(水) 20:43:09ID:wBkw7Ild0
>>752-754
そんなのは専用ブラウザが是正されるべきだと思います。
2006/08/30(水) 20:50:36ID:cTJmxtft0
>>763 専ブラは全部 Monazilla/* っていう User-Agent なんでしょうか?
それなら確かにその方がすっきりしますが......

>>764 個人的には,dat が存在しないのは 302 の場合だけという決めうちは
手抜きだなぁ,そういう決めうちプログラムの側が是正されるべきだよなぁ,
と確かに思うんですが,かといって経過措置も何も考えずにやると
いろいろ混乱を来しそうで......
2006/08/30(水) 21:30:53ID:yYrD6tu00
てか、1.00とか適当なことを言ってないで有効活用すればいいじゃん。
1.1とか2.0とか。
2006/08/30(水) 21:31:42ID:3/7Hf8HC0?BRZ(6666)
404より410の方が妥当な悪寒。。。
2006/08/30(水) 21:32:06ID:WivvJ1bL0
> User-Agent
通常のdat読みでは義務ではありませんが、以前にはMonazilla/1.00だけが
dat読みを許されていたこともあり、現在でも非常に強く推奨されており、
実際、ほとんど(おそらく全て)がそうなっています。
ちなみに、●使用ではUAが厳しく指定されています。
2006/08/30(水) 22:07:02ID:ZcVDdovvP
>>768
L〜もG〜もW〜もMonazillaじゃないぞ
2006/08/30(水) 22:08:51ID:cTJmxtft0
>>767 多くのケースでそうかも知れませんが,スレ移動で今までなかった dat が出現するとか,
dat 落ちしたのが復活するとか,ということもまれにない訳でもないかと......

>>768 なるほど......ってことで,Monazilla/ の場合だけ 302 にしますた.
2006/08/30(水) 22:11:24ID:cTJmxtft0
>>769 ありゃ,すれ違っちゃった......となると,その L?, G?, W?
ってブラウザがどういう挙動を示すかが問題か......
2006/08/30(水) 22:18:45ID:sPlw/x6z0
dat落ちについてはLocationがおかしいだけで302は妥当なのかも
LocationはMUSTじゃないからあえて含めないで
本文にdat落ちのメッセージ入れてみるとか
(どういう動作になるかわからんけど)
2006/08/30(水) 22:56:08ID:WivvJ1bL0
Live2chもギコナビもぎこはにゃんもMonazillaだし、W?シラネ、Mac?モットシラネ。

既に言われているように、本来は専ブラ側が対応するものなので、
細かい所まで気にしなくても良いんじゃないですかね。
302決め撃ちばかりとも限らないし。
2006/08/30(水) 23:34:09ID:3/7Hf8HC0?BRZ(6666)
レスポンスを細分化することは可能であっても(3**返すとか4**返すとか)それに見合った負荷対策は?
と考えるとでんでんメリットが少ない気もするですね(苦笑)

*.datの取得に関しては「UAでMonazillaを返してこないのは、専用ブラジャー以外」と決め込んでしまって良いんじゃないかな。
・・・を前提にしつつHTTP仕様にも沿って欲しいよなぁとかとか(どっちやねん)
2006/08/30(水) 23:49:20ID:WivvJ1bL0
ああそうか、Monazillaは302にするということは、pastdat.soを使わないということであり、
サーバ側の処理を省くことになる、という2ch側の理由もありえるのか。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況