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

私的良スレ書庫

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

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

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
551 : リリン - 2012/12/13(木) 19:16:17.60 ID:??? BE:139661928-PLT(45072) (+11,-29,-17)
>>547
C/C++でint32がとる32ビットは処理系依存だよ。2^32の範囲とってくれるとは限らない。
552 : Name_Not - 2012/12/13(木) 19:17:57.30 ID:??? (+26,-12,-4)
>>544
javascriptで言うコンパイルはブラウザが行ってる訳
わかる?
553 : Name_Not - 2012/12/13(木) 19:18:59.10 ID:??? (-1,-29,-30)
fomenameのアホが悔しくて話題変えて粘着してるのか
554 : Name_Not - 2012/12/13(木) 19:20:37.27 ID:??? (-4,-27,-2)
msとかieは無視しろよ
555 : Name_Not - 2012/12/13(木) 19:26:45.65 ID:??? (+57,+29,-11)
なんとJavaScript自体がどういう風に動いているかすらわかっていなかったというオチか
よく仕事になるな
556 : Name_Not - 2012/12/13(木) 19:52:57.01 ID:??? (+57,+29,-16)
androidも同じようなことが言えるよ
557 : Name_Not - 2012/12/13(木) 19:59:03.60 ID:??? (+145,+30,-212)
知識をもとに回答をくれている方には真面目な回答します。

>>549-551
細かい人間で悪いのですが、私の言っている問題とは少し違いますね。
理解と共に作成時に判断できるところがです。
コンパイラ等の処理系の問題は知っていますが、
作成時に知識と共に判断できる周知性がありますよね。
かつクライアントでの実行結果には均一性があると思います。
APIの件はたしかにある意味似ていますね。
細かい部分は良いから、とりあえず今のバージョンにあわせれば直るという
いまいち理解できない対処法方が・・・
ただ、誤作動までに明らかな行程があり、
仕様が変わったという原因があるわけです。

”間違えた構文”で動作し、結果が変わるというのは
言語として均一性において別問題でしょう。
もちろんJScriptやらが標準なのに構文チェックしないieがクソであって、
javascriptが悪いと言うのはお門違いだとは少しおもいますが、
初回でこんなことに陥らせたjavascriptが気持ちの悪い言語と言うのは変わらないですね。
558 : Name_Not - 2012/12/13(木) 20:02:38.28 ID:??? (+47,+12,+1)
>>557
うざい死ね
559 : Name_Not - 2012/12/13(木) 20:03:32.43 ID:??? (+52,+29,-3)
偉そうだなおいw
560 : Name_Not - 2012/12/13(木) 20:12:16.59 ID:??? (+10,-29,-66)
>>557
そもそもdocument.xxxxxはjavascriptの言語仕様じゃない
DOM APIっていうブラウザにアクセスするためのAPIだ
561 : Name_Not - 2012/12/13(木) 20:17:39.07 ID:??? (+80,+30,-74)
>>557
javascriptに限らず、異なる環境では明らかに動かないとは言えないけど
動作が微妙に異なって、それが問題になるなんてことは珍しいことじゃない
あんたがそれを知らないのはそういうレベルのものを作ったことがないだけだ
例えばデバイスドライバとかを作ってみればわかる
562 : Name_Not - 2012/12/13(木) 22:09:40.29 ID:fuC/137X (+44,+30,-122)
>>557
>初回でこんなことに陥らせたjavascriptが気持ちの悪い言語と言うのは変わらないですね。



「僕ちゃんプログラム書けるから!JavaScript?ブラウザで動くあれだろー?余裕余裕まかせてー」

書き方を見つけて、それがレガシーだと知らずにそのまま使ってドヤ顔

「せっかくやってくれたのに悪いんだけど、IEで動作が…」イラッ

(プークスクス)

「えっ?そんなっ…!!」

「IEでエラー出すって、初めてだとよくあるらしいですね。やっぱり専門の人に…」イラッイラッ

「ちょっ、ちがっ…、まって、まって。確認するから…確認…」


こういうのを想像した
563 : Name_Not - 2012/12/13(木) 22:48:22.42 ID:??? (+25,+2,+0)
所詮はIT土方だからな
564 : Name_Not - 2012/12/13(木) 22:57:54.44 ID:??? (+39,+11,-2)
JavaScriptがどうこうじゃなくて、cssだろうとieは気を付けないと
566 : Name_Not - 2012/12/14(金) 02:50:40.14 ID:??? (-1,-29,-39)
まずprototype汚染って言葉があることを知っておいてください

Element::styleの戻り値はCSSOMで定義されてる
http://www.w3.org/TR/cssom/
569 : Name_Not - 2012/12/14(金) 04:11:07.10 ID:??? (-2,-30,-28)
追記でリクエストが発生するのはXHTMLの<img src="***">でした。
HTMLのページだと発生しないようです。
571 : Name_Not - 2012/12/14(金) 06:14:32.21 ID:??? (+51,+29,-7)
>>570
なるほどロードされてしまうものなのですね
事前に切り取っておきます
ありがとうこざいました
572 : Name_Not - 2012/12/15(土) 13:43:22.61 ID:0A67eZxk (+5,-30,-309)
現在、次のような感じで、全てファイルを読みこんだ後にファイル内の関数を利用しています。
<SCRIPT src="f001.js"></SCRIPT>
<SCRIPT src="f002.js"></SCRIPT>
<SCRIPT src="f003.js"></SCRIPT>
if(scn == 0){
f001();
}else if( scn == 1){
f002();
}else if( scn == 2){
f002();
}else{
f001();
}

条件に一致した時のみファイルを読み込ませようとして、次のようにやったのですが、ダメでした。
if(scn == 0){
<SCRIPT src="f001.js"></SCRIPT>
f001();
}else if( scn == 1){
<SCRIPT src="f002.js"></SCRIPT>
f002();
}else if( scn == 2){
<SCRIPT src="f003.js"></SCRIPT>
f003();
}else{
<SCRIPT src="f001.js"></SCRIPT>
f001();
}

出来るだけ読み込むファイルを少なく効率的にしたいのですが、どのようにしたらよいでしょうか?
574 : Name_Not - 2012/12/15(土) 15:45:55.79 ID:??? (+52,+29,-58)
>>572
>次のようにやったのですが、ダメでした。
それで出来るってどこで勉強したの?
オレルールがダメなたびに聴かれたら困るから
プログラミングするなら、せめて構文とはなにかを勉強してくれ。
575 : Name_Not - 2012/12/15(土) 15:48:56.95 ID:??? (+5,-30,-55)
>>572
そのむき出しのスクリプトタグはなんだ?
とりあえずスクリプトがheadにあり読み込み同期中と仮定して
document.write('<SCRIPT src="f001.js"></SCRIPT>');
ってしてみたらどう?

それでダメならごちゃごちゃとスクリプト書くことになるから全部読み込ませた方が早い
576 : Name_Not - 2012/12/15(土) 16:08:08.83 ID:??? (+33,-30,-160)
>>572
わりとめんどくさい
標準では提供されていない
できるだけサーバ側でなんとかしたほうがいいが、ブラウザ側でやるなら、

>>575みたいなのとか、scriptタグをDOMへ挿入するとか、
これは非同期的に読み込みが行われる

jQuery使って$(document.body).append($('<script src="f001.js"/>'))とかすると、
これは同期的に読み込みが行われる

こういう目的のライブラリもけっこうあるから調べてみるのもいいかも

関数の読み込みを同期的に読むか非同期的に読むかとか、
非同期的に呼んだ場合関数がどのタイミングで使えるようになるかとか、
読み込む関数自体も非同期に適当なタイミングで実行できれば良いのかとか、
あとブラウザによっては動かなかったりとか、
いろいろ検討する要素が多い
577 : Name_Not - 2012/12/15(土) 16:28:30.02 ID:??? (-6,-29,-6)
>575の</SCRIPT>べた書きは駄目だろ
578 : Name_Not - 2012/12/15(土) 16:39:11.68 ID:??? (+58,+29,-20)
>>572
なんでもいいからデバッガ使ってエラーを理解しろ
話はそれからだ
579 : Name_Not - 2012/12/15(土) 16:41:21.46 ID:??? (+75,+26,-6)
>>576
>同期的に読み込みが行われる

え?何言ってんのこいつ
580 : Name_Not - 2012/12/15(土) 17:44:56.04 ID:??? (+39,+0,-1)
>>579
ためしてみた?
581 : Name_Not - 2012/12/15(土) 19:17:01.90 ID:??? (+12,-28,-24)
質問!
JavaScriptでもjQueryでもいいのですが
簡単に設置できるチャットってありますか?
582 : Name_Not - 2012/12/15(土) 19:29:35.90 ID:??? (+18,-11,+4)
>>581
つhttps://www.google.co.jp/search?q=%E3%83%81%E3%83%A3%E3%83%83%E3%83%88%E3%80%80javascript
583 : Name_Not - 2012/12/15(土) 19:57:43.69 ID:??? (+18,-30,-161)
>>580
x = $('<script src="f001.js"/>')はすぐ戻ってくるけど
その後$(document.body).append(x)やると、実際にf001.jsを読み込んで
それを実行するまでブロックしてから戻ってくるなあ。
サーバ側細工してf001.jsの読み込みを10秒ぐらい遅らせてもきっちり待ってくれる。

以下みたいなコーディングを実際にしちゃっても問題無いってことなのかね?
$(document.body).append($('<script src="f001.js"/>'));f001();

こんな感じに、
stag = document.createElement("script"); stag.src = "f001.js";
document.body.appendChild(stag);
DOMに直接挿入した場合には、appendChildが戻ってきてもまだf001()は呼べないね。
onloadとか設定して監視するとかしないといけないから面倒だ。
584 : Name_Not - 2012/12/15(土) 23:38:47.79 ID:QmJZuDbY (+28,+29,-27)
ブログやってるんですけど、
http://www.lifehacker.jp/
ここの一番上のスライドする記事リンクみたいのはどうやって作るのでしょうか。
ご教示願います。
585 : Name_Not - 2012/12/16(日) 08:56:54.05 ID:??? (+9,-29,-46)
>>583
ajaxの非同期モードでスクリプトを読んで、evalしているみたいだね。
586 : 585 - 2012/12/16(日) 08:57:27.40 ID:??? (+43,+20,-1)
非同期ちがう同期や
587 : Name_Not - 2012/12/16(日) 10:44:46.58 ID:??? (+19,-29,-20)
>>584
jQuery pluginのbxSlider
588 : Name_Not - 2012/12/16(日) 11:40:14.67 ID:uCkBf2CH (+27,+29,-16)
>>587
ありがとうございます。
色々派生系あってすごい助かりましたたたたたたたたたたた!
589 : Name_Not - 2012/12/16(日) 12:05:14.12 ID:??? (+0,+0,+0)
ent=psy-ab&q=%E3%82%A6%E3%82%A3%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%88%E3%80%80SEO%E5%AF%BE%E7%AD%96%E7%84%A1%E5%8F%8C&oq=%E3%82%A6%E3%82%A3%E3%83%AB%E3%82%B2%E3%83%BC%E3%83%88%E3%80%80SEOh=1009
590 : Name_Not - 2012/12/16(日) 15:54:45.30 ID:??? (+22,-30,-170)
>>583
ちょっと前にあった$('<img ..>')の時点で読み込み始まる話と矛盾してると思って確かめてみた

x = $('<div><img ..><script ..></div>')
$(document.body).append(x)

imgタグの読み込みは1行目で始まって、scriptタグの読み込みは2行目で同期方式で行われる

そして、scriptタグの中身はちゃんと実行されるのを確認したけど、
DOMには<div><img ..></div>の部分しか反映されない

つまり、scriptタグの部分は削除してjQueryで独自に処理、
それ以外のタグ?はDOMに処理をお任せしてるみたい
591 : Name_Not - 2012/12/16(日) 15:58:42.92 ID:??? (+53,+18,-17)
scriptはブラウザに依らなかったか?
592 : Name_Not - 2012/12/16(日) 16:10:43.35 ID:??? (+44,-29,-104)
>>591
jQueryがブラウザによって動作を変えてるって意味?
>>590のは要するにscriptタグの処理をブラウザに頼らずjQueryが自力でやってるように見える
とりあえず手元のIE9、Firefox17、GoogleChrome最新で確認した
593 : Name_Not - 2012/12/16(日) 17:05:36.77 ID:??? (+73,+29,-60)
>>592
できれば、古いjQueryで確かめて欲しい。
ソースのdomManipあたりにそういう処理があるけど、古いのにはないし。

どっちにしろ、ドキュメント化されてないふるまいに依存するのは、危険だと思うけれども。
594 : Name_Not - 2012/12/16(日) 18:33:32.95 ID:??? (+51,-18,-60)
jQueryがどうかは詳しく知らんけど
ツリーにぶら下がった<script>要素にsrcがあればその次点で読み込み開始

レンダリング停止

読み込み終わると評価開始

評価終了後、レンダリング再開

これだけ覚えとけばなんとかなるじゃろ
595 : Name_Not - 2012/12/16(日) 19:05:31.51 ID:??? (+7,-28,-4)
>>593
簡単に確認してみたが、1.2.5から>>590の動作をするようになったみたい
596 : Name_Not - 2012/12/16(日) 19:11:27.68 ID:??? (+69,+29,-69)
>>594
レンダリング停止するのかね?そのへんはブラウザ依存の気もする
jQuery使わないでDOMツリーにぶら下げる場合はいつ評価終了するのかが非同期なんで、
イベントハンドラなりでそれを捕まえる必要があるね
597 : Name_Not - 2012/12/17(月) 19:28:56.23 ID:eDYnu5CB (-21,-30,+0)
jQueryのanimateが完了したら、あるプロパティを変更する
また、必要ならメソッドの引数にコールバックを受けて実行する
ということをしたくて、下記のように書きました

function MyObject(){
  this.div = $('<div>');
  this.stat = 0;
}
MyObject.prototype.show = function(){
  var A = this;
  var callback = (typeof arguments[arguments.length - 1] == 'function') ? arguments[arguments.length - 1] : null ;
  this.div.animate({ opacity : 1 },500,function(){
    A.stat = 1;
    if(!!callback) callback();
  });
};


callbackの部分は「最後の引数が関数だったら」というイメージで書いたのですが
このようなやり方であっていますか?
もし、もっと賢いor定石的なやり方があったら教えてもらえますでしょうか?
598 : Name_Not - 2012/12/17(月) 20:02:47.77 ID:??? (+3,-30,-117)
B.prototype = Object.create(A.prototype) と継承した場合、Bのプロトタイプ=Aのインスタンスになるので
B.prototype.name = "JS" は、実際はAのインスタンスにnameプロパティが追加されるという認識でいいのでしょうか?
599 : Name_Not - 2012/12/17(月) 20:12:16.33 ID:??? (+20,-7,-31)
createって新しいオブジェクトを返すんじゃなかったっけ?
600 : Name_Not - 2012/12/17(月) 22:20:17.29 ID:??? (+9,-30,-202)
Object.create(A.prototype)は、新しく作ったオブジェクトに対してA()の呼び出しをしないnew A()だね
なので1行目は新しく作ったオブジェクトへの参照をB.prototypeに代入してるだけで、
B.prototype.nameはその新しく作ったオブジェクトのnameプロパティになるのは当たり前
その新しく作ったオブジェクトはAのインスタンスと呼んでいいのかは知らん
Aのコンストラクタ実行してないわけだから
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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