■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

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

337 : 株価【650】◆cZfSunOs.U :2006/08/03(木) 13:34:35 ID:H6HyNacD0
>>333-335
>アドレスバーで移動ができんな

例えば
http://sunos.saita.ma/read-js/test/read.html#operate/1153615149/l50
を表示してる時に
http://sunos.saita.ma/read-js/test/read.html#operate/1153830220/l50
をロケーションバーから入力して意図した通りに表示されない,という意味なら
それはブラウザの仕様ってことですね.「"read.html" というページ中の
"operate/1153830220/l50" という場所に移動」と解釈することになり,
"read.html" というページ自体はそのままということになってしまうので.
この問題に対処するため,例えば上部の「全部 1- 101- 201- 301- ...」や
下部の「全部 前100 次100 最新50」というリンクでは JavaScript で
細工してるわけですが...... まぁロケーションバーから直接入力した場合は
その後にリロードすれば正常に表示されるかと.

>レス番表示のあと全部を押すとフリーズしたみたいになるなあ

たぶん,長いスレで全部表示する場合は重くて時間がかかるのかと......

>しかも戻るでレス番表示に戻れない

これは,上記のような細工による影響ですね.

338 :動け動けウゴウゴ2ちゃんねる :2006/08/03(木) 20:08:39 ID:dKbGb89K0
location.hashの変更ってブラウザで検出できないの?
そんなことないと思うんだが

339 :動け動けウゴウゴ2ちゃんねる :2006/08/03(木) 21:19:47 ID:/FiyHJa90
タイマーで監視するとか

340 : 株価【666】◆cZfSunOs.U :2006/08/03(木) 21:37:48 ID:H6HyNacD0
>>338-339read.html までが同じで # 以降だけを変更した場合,
ページを再ロードせず # 以降で指定された id (またはアンカー)を探し
その場所に移動する,という挙動になるようです.
つまり現在表示中のページ内での移動だけが行われるということで,
load イベントは発生しないようです.そこで,「全部 1- 101- 201- 301- ...」
等のリンクについては onclick イベントハンドラを使って細工してるんですが,
ロケーションバーから直接入力された場合はしょうがないような......
setInterval() とか使ってロケーションバーの変更をポーリングするってのは
あまりに効率が悪すぎるし(どれだけのユーザがそういう使い方するかわからないのに
無駄に CPU パワーを消費するだけのような気がするし).
「そういう使い方する場合はロケーションバーに入力後リロードして下さい」
ってことにした方がずっと単純明快という気がします.

341 : 株価【666】◆cZfSunOs.U :2006/08/03(木) 21:47:57 ID:H6HyNacD0
>>340
>setInterval() とか使ってロケーションバーの変更をポーリングする

方法のもう一つの問題点はページ内リンクですね.>>nnn で指定したレスが
現在表示中のページ内にある場合は,再レンダリングせずその場所に
移動するようになってますが,前述のようなポーリングをすると,
そのレスだけを表示するような再レンダリングが発生してしまいます......

317KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30