のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,685,547人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.102 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
151 : Name_Not - 2012/07/28(土) 13:02:09.01 ID:??? (+57,+29,-8)
当たり前だろそんなモン
聖徳太子って知ってる?レベル
152 : Name_Not - 2012/07/28(土) 13:03:58.48 ID:??? (+103,+29,-68)
俺も>>138と同じ方法を取ると思うが。
ブラウザのリクエスト最大同時接続数(2か4だっけ?)までは、並列でリクエストしてくれるであろうと期待して。
1が終わってから2、2が終わってから3、って順番にやって行ったら余分に時間が掛かるだろう。
153 : Name_Not - 2012/07/28(土) 13:04:59.49 ID:??? (+97,+23,+0)
>>152
まじで言ってるのか???
154 : Name_Not - 2012/07/28(土) 13:14:00.22 ID:??? (+57,+29,-29)
どのブラウザか忘れたが同時接続数2ってのがあったの覚えてるから
それに沿って俺はやってる
基本やるなってことだけど
155 : Name_Not - 2012/07/28(土) 13:18:16.86 ID:??? (+52,+29,+0)
ラッパーぐらい作ればいいのに
156 : Name_Not - 2012/07/28(土) 13:27:43.37 ID:??? (+113,+29,-221)
>>153
どこが間違ってるか具体的に言ってもらえた方が勉強になります。

画像で例えるなら、画像が10枚貼ってあるHTMLページがあったとして、
1枚目の画像のダウンロードが終わってから2枚目のダウンロードをスタートさせたりしたら
効率が悪いし、実際のブラウザの実装は画像は並列にダウンロードされる。

Ajaxも画像もHTTP通信に変わりはないから、並列でリクエストをスタートさせた方が
効率がいい。しかしレスポンスが返るタイミングはそれぞれ違うので(例えば1つ目が500ms、
2つ目が100msで返ってきたら、2つ目の方が先に完了する)、Ajaxならやはり>>138のように、
それぞれの通信が成功したタイミングで、全ての通信が成功しているかフラグなどで確認する
やり方が良いように思えるのですが違いますか?
157 : Name_Not - 2012/07/28(土) 13:33:08.83 ID:??? (+69,+26,-9)
>>156
非同期の通信だから同時接続数が制限されてんだって
158 : Name_Not - 2012/07/28(土) 13:43:07.80 ID:??? (+69,+29,-89)
1-10番まで同時にスタートすると、まあ1,2で最大同時接続数を使い切るとして、
3以降はブラウザのキューに入って待機状態になるんじゃないんですかね?
で、1か2が終わったら3以降の通信を順番に始めてくれ、最終的に10まで完了するという理解ですが。
まさか3以降がキャンセルになるって事はないですよね?

というかこれくらい自分で実験した方が良さそうなので後で実際に組んでみます。
159 : Name_Not - 2012/07/28(土) 15:36:14.75 ID:??? (+57,+29,-27)
何がしたいのか分からないな
グローバル変数のカウンター使えばいいだけじゃん?
それで何か不都合あるの?
160 : Name_Not - 2012/07/28(土) 15:44:00.25 ID:??? (+46,+28,-1)
それでいいよ。
161 : Name_Not - 2012/07/28(土) 15:44:07.45 ID:??? (+52,+29,-14)
すげー遅レスだなwww
162 : Name_Not - 2012/07/28(土) 15:46:19.52 ID:??? (+73,+29,-146)
多分キューの部分はESの仕様外出し個々のOSの設定依存だと思う
あと回線が細かったりレイテンシの悪いモバイル回線で大量発行すると遅すぎたりエラって切断されたりする
反対に加速に時間がかかるしレイテンシ悪いんだから1本ずつ小さなファイル取得するのも極めて効率悪い
まあブラウザ全体で10本程度くらいがいいと思うから
3本くらい常にまわすのがいいかもね
まあプロトコルで改善すべき問題でもあるから難しい
163 : Name_Not - 2012/07/28(土) 18:39:21.73 ID:??? (-1,-29,-1)
unko() を実行してきました (*^_^*)
164 : Name_Not - 2012/07/28(土) 22:20:25.55 ID:??? (+57,-29,-95)
>>158ですが自分で実験してみました。ソースはhttp://www.dotup.org/uploda/www.dotup.org3249046.txt
wait.phpでは分かりやすくするためsleep(5)で5秒スリープしています。

PCのfirefox14だと同時接続数は"6"のようです。
apacheログで確認したのですが、つまり10個同時にリクエストを行うと
6個先に通信が行われ残りの4個はキューに入り、先の通信のレスポンスが返れば
キューに入っている残りの通信が行われる、という事のようです。
apacheログhttp://www.dotup.org/uploda/www.dotup.org3249052.txt
165 : Name_Not - 2012/07/28(土) 22:21:42.92 ID:??? (+22,-30,-108)
firefoxの場合、同時接続数はabout:configのnetwork.http.max-persistent-connections-per-server
という設定で変更出来ました。(デフォルト値6)
apacheログではこれを2に変更した場合も載せています。

という事で、>>138さんのやり方が簡単で良いのではないでしょうか?>>117さん
ただ、>>162さんの言うように同時接続数はOSやブラウザに依存するので、
いくらキューに勝手に入ってくれるとはいえ、場合によってはある程度の調整は必要かも知れないですね。
166 : Name_Not - 2012/07/29(日) 00:52:28.01 ID:??? (+80,+29,-144)
>>117 のループが何をやってるのか全然わからん。
setTimeout 連続発行?

で、>>164 調整するって何を?mxhr にするとか?
数百のリクエスト発行するとかならまだしも、10 やそこらで気にする
必要あるかな。

それにブラウザ側が同一サーバに対する同時接続数に制限をかける以上、
それを超えた場合の処理をブラウザが面倒を見るのは当たり前の話で、
それができなければただのソフトウェアのバグ。
167 : 117 - 2012/07/29(日) 09:37:41.22 ID:??? (+13,-30,-117)
>>165
ありがとうございます。>>117 の内容が一番良さそうですね。
ただ、欲を言えば

$(function(){
// データロード
var1 = $.ajax(...)
var2 = $.ajax(...)

// データの加工
...

// ページ初期化
...
)

みたいに処理を一カ所にまとめておきたかったのですが、
これは無理そうですね。あきらめてデータ加工、ページ初期化は
別関数に切り出し、チェック関数でOKだったときに呼び出す形に
したいと思います。

>>166
ごめんなさい。setTimeoutは間違えました。
168 : Name_Not - 2012/07/29(日) 09:54:39.39 ID:??? (-2,-30,-98)
var ajaxs = new Ajaxs(callback);
ajaxs.add({...})
ajaxs.add({...})
ajaxs.call();

こんな感じで呼べる関数作るのが一番だろ
169 : Name_Not - 2012/07/29(日) 09:56:17.36 ID:??? (+10,-30,-124)
>>164
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=8 HTTP/1.1" 200 -
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=9 HTTP/1.1" 200 -
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=10 HTTP/1.1" 200 -
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=7 HTTP/1.1" 200 -

俺も昔試したけどやっぱ8、9、10、7になる通り通信状態によって左右されるから順番にならないんだよね
待機状態になるのもあんま良しと言えないからやっぱ順番にやっていくのが得策なのかも
170 : Name_Not - 2012/07/29(日) 10:38:29.79 ID:??? (+63,+30,-78)
キューに入る事の何が良しと言えないか分からないけど、要件による。
順番に実行する要件ならもちろんそうすべきだが
117の要件は全てのデータ取得が完了してから次の処理に進むだから、
データ取得の順番は問われないし、むしろ順番に取得すると余計に時間が掛かる。
プログラムを作るにあたっては、要件を正確に掴むことも必要。
171 : Name_Not - 2012/07/29(日) 13:11:44.95 ID:??? (-1,-29,-26)
なんでJSONの取得で多重リクエストする必要があるんだよ
GM_xmlhttpRequestでもラッピングしてんの?
172 : Name_Not - 2012/07/30(月) 18:28:47.76 ID:??? (+2,-29,-41)
chrome系ブラウザを、例えば再起動させたいときは
chrome.send("relaunchNow")ですが
こういったもののリスト知りませんか?
173 : Name_Not - 2012/07/31(火) 02:23:45.65 ID:??? (-1,-29,-74)
good partsに載ってたんだが、配列の判定のとこでさ
「グローバルオブジェクトで作成された配列」ってどんなやつ?
具体例教えて下さい。
174 : 煌芽木ひかる - 2012/07/31(火) 04:34:18.04 ID:??? (+3,-30,+0)
JavaScript で言う「ぐろーなるおvぶけjと」は、言わば、
window オブジェクトのこと (実行環境がブラウザの場合)。
だから、「グローバルオブジェクトで作成された配列」は結局、
「windowでサkス性された配列」(= new window.Array) のこと。

これだけじゃ分からんだろうけど、要するに本文で言ってることは、
例えば、

var iframe = document.createElement("iframe", { src: "about:blank" });
document.body.appendChild(iframe);
var win = iframe.contentWindow;
var ary = new win.Array(); // グローバルオブジェクトで作成された配列

ary のコンストラクタは win.Array であり、(window.)Array ではないから、

ary.constructor === Array;
ary instanceof Array;

はいずれも false が返る。
原文だとちゃんと「constructed in a different window or frame」
と書いてあるんだけど。
175 : 煌芽木ひかる - 2012/07/31(火) 04:36:19.24 ID:??? (+3,-30,-70)
> var iframe = document.createElement("iframe", { src: "about:blank" });

これは無視の方向で。
Utility 関数を書き換え損じますた。
176 : 煌芽木ひかる - 2012/07/31(火) 04:47:42.33 ID:??? (-1,-30,-16)
>>172
「RegisterMessageCallback site:src.chromium.org」

で検索すれば、わさわさ出てくる。
177 : Name_Not - 2012/08/01(水) 13:47:54.68 ID:??? (+3,-29,-80)
質問です。
attachEventはイベント専用なのでしょうか。

関数の引数に関数を指定し、
その引数を変えてやることで汎用的だけど、機能別に処理させたいと考えてます。
これはonloadとかイベント時に関係なく、head内に順に記載した通り動きます。
178 : Name_Not - 2012/08/01(水) 15:39:51.75 ID:??? (+57,+29,-4)
別に自分でそういうの作ればいいんじゃないの。
179 : Name_Not - 2012/08/01(水) 23:36:36.46 ID:??? (+52,+29,-1)
それが分からないのです…
180 : Name_Not - 2012/08/02(木) 02:37:04.47 ID:??? (+23,-30,-58)
<form name="frmA">横軸のメモリ
<select onChange="screen2(this)" name="one">
<option value='0.2' selected>0.2</option>
<option value='0.5'>0.5</option> </select> </form>

function screen1(as){
var hantei=as.options[as.selectedIndex].value;}
ってしたらhanteiが数字でなく文字として認識される
そうしたらいいんだぁあああああああああああああああ
教えてくれ
181 : 煌芽木ひかる - 2012/08/02(木) 02:59:50.37 ID:??? (+56,+29,+0)
変態だぁああああああ逃げろぉおおおおおおおお
182 : 180 - 2012/08/02(木) 03:41:33.53 ID:??? (+5,-29,-13)
>>181
よく見ろ。
変数はhentai(変態)でなくhantei(判定)だろうがぁああああああ
183 : 煌芽木MMMBO - 2012/08/02(木) 04:03:34.87 ID:??? (+17,-30,-35)
藻j理恵tを数値に変換酢rうだけdふぁがあら、
parseFkiat使うか、楽をするならq、
短ジュに1をい抱えればいいだけ。
184 : 180 - 2012/08/02(木) 04:09:47.28 ID:??? (+32,+6,+1)
>>183
日本語でおk
185 : 煌芽木☆MMMB - 2012/08/02(木) 04:28:25.39 ID:??? (+7,-30,-83)
まず、option の value を valueOf にします。

<form name="frmA">横軸のメモリ
<select onChange="screen2(this)" name="one">
<option valueOf='0.2' selected>0.2</option>
<option valueOf='0.5'>0.5</option> </select> </form>

function screen2(as){
var hantei=as.options[as.selectedIndex]*1;}

JavaScript 側では、value プロパティを参照する代わりに
上記の様にします。
186 : 煌芽木☆MMMB - 2012/08/02(木) 06:49:09.15 ID:??? (+57,+29,-3)
俺、こんなことしてる場合じゃねーや。
187 : Name_Not - 2012/08/02(木) 09:33:14.67 ID:??? (-1,-29,-33)
こういうときのためにevalがある
hantei=eval(hantei)
188 : Name_Not - 2012/08/02(木) 09:58:49.88 ID:??? (+22,-29,-2)
*1より-0の方が早い
189 : Name_Not - 2012/08/02(木) 10:37:50.51 ID:??? (+51,+25,+0)
>>188
嘘乙
190 : Name_Not - 2012/08/02(木) 11:26:26.13 ID:??? (-1,-29,-41)
>>185
なぜvalueOfにするんだよ
属性とプロパティの違いわかってる?(IE6使いなのか)
valueOf属性はHTML4で規定あった?
191 : Name_Not - 2012/08/02(木) 11:51:30.42 ID:??? (+52,+29,-2)
全力のマジレスかっけー
192 : Name_Not - 2012/08/02(木) 12:02:04.08 ID:??? (+45,+27,+0)
まあな
193 : Name_Not - 2012/08/03(金) 02:14:15.88 ID:??? (-2,-30,-54)
form部品のvalueの値をjavascriptで取得すると
値が数字のみでもtypeofでstringが返ってきます
parseIntとかいちいちやらないとだめでしょうか?
194 : Name_Not - 2012/08/03(金) 02:15:43.15 ID:??? (-11,-29,-2)
-0
195 : Name_Not - 2012/08/03(金) 02:25:37.92 ID:??? (-5,-28,+0)
*1 の方がおすすめ。
196 : Name_Not - 2012/08/03(金) 02:29:49.76 ID:??? (+57,+29,+0)
なるほど、それは簡単ですね
ありがとうございます
197 : Name_Not - 2012/08/03(金) 04:58:16.39 ID:??? (+21,-30,-41)
textareaでマウスでコピペ(右クリ貼り付け)か文字うったとき(ctrl+vでキーのコピペ含む)で
共通するイベントってありませんか?
mouseとkeyの2つイベントハンドラに登録するのもいやなのでなんかあるといいのですが
changeが怪しかったのですがtextareaにはblurと同じみたいでした
198 : Name_Not - 2012/08/03(金) 07:54:51.73 ID:??? (+57,+29,-17)
両方に登録して問題がないならそれを使うべき
199 : 197 - 2012/08/03(金) 08:00:11.24 ID:??? (+57,+29,-43)
おはようございます

結局該当するイベントはないようでした
マウスでペーストした時にはイベントが発生しないようです
右クリ禁止は横暴だし困っちゃいましたね
200 : Name_Not - 2012/08/03(金) 09:43:24.56 ID:??? (-1,-29,-17)
Opera 以外なら onpaste でキャンセルできるけどね。
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について