+ JavaScript の質問用スレッド vol.130 + [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950が>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください
■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。
■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)
・回答者同士のレスは原則禁止(>>6を参照)
・ライブラリの話題の投稿(>>6を参照)
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/ >>723
できれば再現するための最小コード貼ってみて
まあ経験上はタイミング的問題というかバグなのかもしれない
それと昨今のメモリリークバグはdeleteは関係ないよ
JSオブジェクトとリンクされた内部バッファの管理の問題だから
JS側では別策を取る以外何もできないというのが主流だから
とは言えChromeは1年くらい前からネイティブとJSのGCを統合する仕組み強化したから
Canaryでも使っていない限り滅多にお目にかかれないと思うけどね
(ただしBlobURLを使うと仕組み上どうしてもリークする) 取ってつけたように適当な質問しなくていいから(呆) >>722
それは流石にない
まずは銃に頼らず筋肉を付けろと言ってるところに
じゃあ人間の本質は脳だから手足を無くせと言うようなもの >>726
例えが的外れ。
まずjQueryはJavaScriptで使うライブラリなのだから
使う言語はJavaScriptだ。jQueryを使っていても
JavaScriptを使う以上、JavaScriptの勉強になる。
DOM APIはJavaScriptではない。これはJavaScriptの仕様書に
DOM APIがのってないことからも明らか
つまり、おまえはJavaScriptとDOM APIを混同している。 > まずは銃に頼らず筋肉を付けろと言ってるところに
これを「道具に頼らず筋肉をつけろ」と言い換えれば
DOM APIの立場ってのがよく分かるだろう。
jQueryは道具。DOM APIは筋肉。普段の生活で何を使っている?
朝起きてシャワー浴びて着替えて電車に乗って
パソコンを使って仕事をして食べ物を調理して寝る
川に行って水を組んで火を起してお湯にして
何キロも歩いて紙と鉛筆で図表を作って
狩りをして火をおこして焼いて寝る
これが「道具に頼らず筋肉をつけろ」ということだ
無人島ツアーじゃあるまいし、そんなことをして遊ぶ気はない。
どうしても必要なところだけ頑張ればいい DOM APIはCで言うところのOSのAPI(の一部)みたいなもんだと思う
CとJavaScriptは単独ではコンパクトな辺りはよく似てると思う OS、例えばWindowsだと、Win32APIを持ってきて、
これが基礎だと騒がれる気持ちがわかるだろう? ぶっちゃけjQueryが一番息が長くて
これからもほとんど変わらず生き残り続ける
ライブラリだよ。
AngularとかReactとか1年後に今の知識が
使えるかどうか怪しい オワコン云々よりjQueryに変わるような優れたライブラリがないだろ?w まあbootstrapがjQueryに依存してるからなあ
生き残ってる理由はそれが大きいな >>730
数年前ならWin32APIだったと思うが今なら(ネイティブではないが).NETくらいには感じてるよ >>739
本末転倒ってやつだなw
○○が良いから乗り換えた・・・乗り換える理由がある。正しい
○○が嫌だから乗り換えた・・・乗り換える理由がない。間違い Underscore を使っている、Backbone.js でさえ、
イベントハンドラーを追加した要素の、祖先の要素を削除したら、メモリリークを起こす
jQuery では、祖先の要素を削除したら、
その子孫のイベントハンドラーもすべて削除するから、メモリリークしない
jQueryの互換ライブラリのZepto.js でも、メモリリークする それは仕様の違いであってメモリリークとは言わない
もしかしたら生子要素を再利用する場面もあるかもしれないし >>727
> DOM APIはJavaScriptではない。これはJavaScriptの仕様書に
> DOM APIがのってないことからも明らか
JavaScript APIという用語を知らないのか
それから、JavaScriptという仕様書はないぞ
君が「JavaScriot = ECMAScript」と曲解してるだけ そんな文句を付けて何か意味があるのかは知らんが
取り敢えずJavaScriptという仕様書はかつてあったけどな
__defineGetter__やらESの仕様にないがブラウザが実装しているものについて
WHATWGが定義していたが拡張も概ねES仕様書に乗るようになったので削除された >>743
jQueryもJavaScript APIだよ JavaScript APIとはなにか?
https://www.google.co.jp/search?q="JavaScript+API"&oq="JavaScript+API"&sourceid=chrome&ie=UTF-8
Maps JavaScript API - Google Developers
JavaScript API for Office - MSDN - Microsoft
JavaScript API の例 - IBM
Garoon JavaScript API - cybozu developer network JavaScript APIって呼び方意味分からんわ
JavaにJSの環境を公開するAPIならそう呼ぶのはわかるが
ライブラリはあくまでライブラリでしょ
jQueryくらい薄いラッパーではAPIと名乗ることすらおこがましい >>744
「JavaScript, aka.」の事だとしたら、相互運用性の為に非推奨機能をまとめただけの補完的仕様で「JavaScriptの仕様」と呼べるものでもなかったと思う JavaScriptによるAPIなのか
JavaScriptのためのAPIなのか
コンテキストによるだろ それ単体で「JavaScriptの仕様」と呼べるものでもなかったと思う
に訂正しておく 過去にW3CでJavaScript APIという単語を見た覚えがあるけど、今見るとなくなってるね
まあ、API for JavaScriptとでもいえばいいんじゃない? 今の論点はEcmaScriptという仕様の実装であるJavaScriptに
DOM APIが含まれているものは存在しないというところでしょ DOM APIはJavaScript以外からも呼び出せる
だからDOM APIがJavaScript APIなのではなく
DOM API for JavaScript というものがあるという話
"JavaScriptのための" DOM APIなのだから
JavaScriptに DOM APIが含まれていないのは明らか Google Chrome等のJavaScript実装はDOM APIを実装しているだろ >>753
その理屈はおかしい
クロスプラットフォームなAPIはどのプラットフォームでも実装できるというだけ
JavaScritptでもJavaでもPHPでも使えるAPIがDOM API >>754
> Google Chrome等のJavaScript実装はDOM APIを実装しているだろ
その答は「含んでない」
ということを明らかにすれば君も納得できるんじゃない?
なぜ含んでいないのが明らかなのかというと、Google Chrome等のJavaScript実装は
V8 Engineなわけだが、このV8 エンジンは ブラウザではないnodeでも使われてる。
nodeにDOM APIがないのは言うまでもない
そしてもう一つDOM APIを実装しているものとしてBlinkという別の名前がある
https://www.chromium.org/blink
そのblinkから興味深いコメントを持ってきたよ。DOMがBlinkにあることの証拠になるだろう。
> Finally, we’d like to explore even larger ideas like moving the entire
> Document Object Model (DOM) into JavaScript. This has the potential to
> make JavaScript DOM access dramatically faster, but will involve a very
> large re-write of WebKit’s DOM implementation?something that would
> be difficult in WebKit which has two supported JavaScript engines.
Google翻訳
> 最後に、Document Object Model(DOM)全体をJavaScriptに移行するなど、
> より大きなアイデアを検討したいと考えています。これは、JavaScript DOMへの
> アクセスを劇的に高速化する可能性を秘めていますが、WebKitのDOM実装を
> 非常に大きく書き直す必要があります.WebKitでは2つのJavaScriptエンジンがサポートされていません >>755
JavaでもPHPでも使えるから
Java APIでありPHP APIだって
言いたいって話でOK? >>757
それぞれの言語仕様の範疇でDOM APIを呼び出しているわけだから、その解釈でいいんじゃない?
同じDOM APIでもJavaとJavaScriptでは命名規則が微妙に違うよね >>756
仕様と実装の違いは理解できるか?
node.jsはDOM APIを実装しなかった
Google ChromeにおけるJavaScript実装はDOM APIを実装した
それだけの違い >>758
そりゃそうだろ。
概念的にはこんな感じだ
[DOM] - [JavaScript用バインディング] - [JavaScript]
[DOM] - [Java用バインディング] - [Java]
見ての通り、JavaにDOMが含まれているわけじゃない >>759
node.jsとChromeは両方共
同じJavaScript実装を使ってるんだよ。
おまえまずそこからだな。 これ仕様の話をしてんの?
実装の話をしてんの?
「JavaScriptの仕様」なんて話をしている輩は論点がずれている気がするけど そもそも、JavaScriptという名の仕様が存在しないから、JavaScript実装なんてワードを持ってくるのが間違いなんだな >>763
そもそもそれ言ってるやつ「仕様」と「実装」の意味がわかってないと思う
なんかブラウザのことを実装、JavaScript(?)のことを仕様と思ってるっぽい
正しくはブラウザはJavaScript実行環境。
V8エンジンなどのJavaScript実装とBlinkなどのレンダリングエンジン(DOM含む)
これがJavaScript実行環境
JavaScript実行環境は、JavaScriptの仕様でも実装でもない V8エンジンを使っただけどオレオレブラウザ作っても
JavaScript実装したぜすげーだろとはいえないからなぁ な? >>765はブラウザのことをJavaScript実装って言ってるわけだよ
バカってわかっただろ? >>724
どういう環境・状況で発生するか分からないので最小コードは分かりません
開放してないのでメモリリークでnullになってるのかと思ったので
deleteVertexArrayやdeleteBufferで開放してないせいだと思いましたが
明示的にしなくても良いということでしょうか? ドライバのバグかもしれんしとりあえずnullが来ても良いようにするしかない >>770
しなくてもJSオブジェクトの参照が切れれば遠くないうちに回収される
deleteを呼ぶとそれを早める事ができる
と仕様に書いてある 子供の頃自治会の野球やらされ続けて苦痛だったがjQuery推しの奴らはそれと似てるな
ただ皆と上手く遊べるように運動神経付けたいですってだけなのに素振りを押し付けてくる
実際遊ぶことが多いのは野球が多いにしても問題があると思うけどな まーたわけのわからないことを言い出した
野球批判したいだけなら野球板でやればいいだろ マジレスすると、野球の批判ではなく野球のように有名だが特殊なものを
それが常識であるかのように押し付ける事への不満だろ わかってて野球批判へ話をすり替えるためにレスしてるんでしょ >>775
マジレスすると
1. 野球とjQueryが似てると言うだけでその根拠が書いていない(だから似てないかもしれない)
2. 1以外(似てるという根拠がない)野球の話しかしていない
3. 子供の頃野球やらせて苦痛だという前提の話をしてる(苦痛じゃない人には当てはまらない)
4. 運動神経付けたいだけの人という前提で話をしてる(野球やりたい人を含めていない)
5. 素振りを押し付けてくるという前提で話をしてる(野球をさせてくれる所に当てはまらない)
つまり勝手な前提を取っ払って、自分の感想部分を明確にすると
「俺は運動神経付けたいだけなのに、俺の自治会では野球をさせてもらえず
素振りばかりやらされて苦痛だった。でも世の中には野球が好きで野球させてくれる
恵まれた人もいるだろう。そういう自治会であれば苦痛でもなんでもないのに。
そういうところがjQueryと似ている」
と言ってるわけだよ
一言で言うと「俺は野球嫌いで野球やらされるのも嫌い。お前らもそうだろ。そうに決まってる」
と言ってるわけで・・・あぁ、一緒だ
「俺はjQuery嫌いでjQueryやらされるのも嫌い。お前らもそうだろ。そうに決まってる」
おまえの好みを押し付けるな。余計なお世話だって話と一緒だ。
野球やるかやらないかは、勧められた人が決めれば良いこと
提案はなんでもOKだ。 >>788
おまえが野球嫌いだからって他人も同じだと思うな
野球勧められてやるかどうかは、本人が決めることだ
他人のおまえが指図すんな。だまってろ ただの感想にこれだけ突っかかってる時点で自己矛盾してるわけだが、自覚がないのが厄介だな なぜ感想に突っかかることが矛盾になるのか?
意味が分からんな あれかな?
jQueryに文句言っても、黙っていてください
その代わりjQueryに文句言いませんから
とかいう矛盾w jQueryに対して何らしかの不満を持ってて嫌われているんじゃなく
それを使う人のとある振る舞いが注意されてるだけなのにまだわからないか
呆れるね >>783
あんた質問者でも回答者でもないんだろ?
それが余計なお世話ってまだわからないのか?
注意してるのはおまえであって、質問者じゃない
感謝すべき回答をおまえは自分が気に食わないからって
書き込むなって言ってるだけ。
少しは口をつぐんだら?おまえが黙っていれば
おまえに文句はつけないよ?w 「とある振る舞い」とかぼやかして書くから
何が言いたいの分からんが、やって良いことを羅列しておこう
・jQueryの話題をすること
・jQueryのサンプルコードを書くこと(むしろ大歓迎)
・jQueryのすばらしさを語ること
・jQueryのデメリットを言わないこと(ほかの人がやればいい)
・jQuery以外のサンプルコードを書くこと(むしろほかの人がやれ) > おまえの好みを押し付けるな。余計なお世話だって話と一緒だ。
ブーメランだよなあ 「言論の自由」を主張しながら、他者に対しては言論封殺。
そういう行為を二枚舌と言います。 >>785
jQuery信者のjQuery信者によるjQuery信者の為の言論統制 別にjQueryに限らなくても、ちょっとした数行の質問回答程度で
やれ関数型で書くのが安全だのワンライナーがスマートだの拘り過ぎるやつは鬱陶しい
しかもそれが今回のケースでは適当というのならまだ有用だしなんの問題もないけど
jQueryの奴らはDOM操作が伴えば必ずそうしろというただの信仰心の押し付けを行ってるだけだもの 俺はjQueryがどちらかといえば嫌いだが、jQueryユーザには罪はないと思っていたんだ
だが、このスレを見てると、jQueryユーザの宗教染みた押し付けが酷くて、jQueryユーザそのものに嫌悪感を抱くようになりつつある
良識あるjQueryユーザにはいい迷惑だろうな >>789
それはおまえの思い込み。
ただ単にjQuery使ったほうがシンプルにかけるから
書いているだけ。被害妄想も大概にしとけ >>786
ブーメランじゃないよ。
選択肢を増やすのは良いこと。
その選択肢をなくそうとするのはダメなこと。
選択肢をなくそうとするのではなくて
別の選択肢をいわないと >>789-790
そもそもここは荒らしがこの流れにするためにテンプレ撤去して立てたスレなんだから
良識も糞もないんだよ ページの再読み込みなしでURLとページ内容が変わるのってどういう仕組みでしょうか?
進む戻るの履歴には記録されましたが、読み込み中の表示もないしページが読み込まれると動くアドオンなどは動かないです
IEとCHROMEで同じ挙動でした
javascriptだとは思うのですが、よろしくおねがいします >>794
History APIを調べると良いよ >>791
違うね
ライブラリを入れるって事自体がシンプルじゃない
関数型チックに書くとかとは訳が違う
結局jQuery推しの人は目の前の問題にシンプルに答えることをせず
やれブラウザの互換性だの自分で勝手に問題を難しくしてるだけ >>797
シンプルに"書ける" って話をしてる
おまえが言うシンプルとは書くことの話じゃないだろ
曖昧な言い方をして話をすり替えんな
ホントお前キモいわ >>797
どんな答だって目的を実現できてるなら
書いて良いんですよ?
jQueryで書きたい人はjQueryで書けばいいし、
あんたの好きなやり方で書きたいなら書けばいいでしょ?
やったらだめなことは、jQueryで書くなと言うこと
どんなやり方だってそれはちゃんとした回答だが
書くなということは回答じゃない。
単なるおまえのやり方の押しつけ
押し付けはやめておまえのやり方のコードを書きましょう。
jQuery版は何回もコードが上がっています >>795
ありがとうございます。多分これですね
詳しく調べてみます どういたしまして。とまあjQuery布教の合間に
こうやって感謝されているわけさw
悔しかったら対抗してみれば? 子供のケンカまだやってたのかいい加減にしろよ
ここら質問スレなんだから他でやれ >>792
jQuery以外の選択肢を奪っておいてよくいうなあ、と思った
> ・jQueryのデメリットを言わないこと(ほかの人がやればいい)
> ・jQuery以外のサンプルコードを書くこと(むしろほかの人がやれ) >>803
奪うというのは、jQueryの話題をするなと連呼すること
なんで俺が書かないことが、奪うことになるのか?
俺が全ての書き方を伝授すれば良いのか? >>799
だれもjQueryで書くななんて言ってないと思うけど
ただ本当は有用でないものを有用だと偽って勧めるのは良くないよね
最初から「布教目的だけど」とか「俺のエゴだけど」とか言って勧めてね
あ、違うか、「ブラウザ互換が怖いからおせっかいかもしれないけどわざわざライブラリ使うね」だったね >>805
じゃあこれからもjQueryでサンプルコード書いていきますね(にっこり)
もちろん理由もちゃんと書いていきますね。jQueryを使った理由を jQueryを含めたライブラリの話題をすることは
禁止じゃないからな。誰もjQueryで書くななんて言うはずがない >>805
ブラウザの互換性ならとっくに問題なくなってるよ。
今問題になってるのはブラウザのマイナーなバグや
(互換性ではなく)機能の違い
互換性は高くてもバグが有ることは避けられないし
互換性は高くても、あるブラウザには搭載されてない機能
ってのが存在する。機能の有無と互換性は関係ないから
そういう時jQueryで書いていれば、かなり古いブラウザも含めて
同じように動くことが保証されている。
そしてそれ以上にjQueryを使うと記述量が大幅に減るのがメリット
これは誰もが比較コードを書いて証明してくれる
jQueryで書くとこんなに短いコードが、jQueryなしだと
こんなに複雑になりますよって。 っていうかjQueryを未だにブラウザ互換のために使う人なんているの?
純粋に開発効率が高いから使ってるんでしょ?
何年前から時代が止まってるんだろうなー >>809
互換に於いての開発効率も上げるよ
そんなに目の敵するようなことでもないだろ?w
スレ違いなのでこれで終了 jQueryが対応している互換の範囲をサポートすべきという前提で
互換に於いての開発効率を上げるためにjQueryを使うべきと言ってるから酷いね
実際は互換が問題にならない場合だってjQueryでしか書けないし、
jQueryでも不足する場合は書けないだろうしね
実際はJS切ってる人でも最低限閲覧できるようにした状態で
プログレスエンハンスメント的に作っていくことだって必要だし
一般的な質問においてjQueryを使うのはマイナスでしかないけどね
そこを勘違いしてはダメだよね いつもjQuery使いに仕事を取られてるの?
必死すぎでワロタ 以前脱jQueryを称える上司と話したことあるんだが
どうやら素JSがドレスコードあり(ジャケットくらいのレンタル可)の店だとすると
jQueryを使うのは浮浪者対策に全ての客にマネキン被せる店だそうな
それでjQuery使わなくて済むのが理想形だから云々言ってた
因みにフレームワークは対戦道場でロボットスーツ着るようなものでそれはOKらしい
要は臭いものに蓋してまで受け入れることが許せないと叫んでた
つまり結局はここでjQueryを批判する人たちって要は
ここくらいでは理想を語っても良いじゃないかという事なのだろう jQuery使わなければまともに書けないと思うのは勝手だが
そう初心者を洗脳するなと言いたいだけだけどな
要するに標準DOMにもある程度慣れて覚えたほうが良いってこと
理想というか、標準APIが使えない人が増えることへの危惧はある
そういう点はjQueryの功罪の罪の部分で回り回って自分たちの首締めつ行為だと考えてるから
こういう初心者教育スレでは皆で気を付けていこうよという気持ちはある
古い環境を相手し無いというのだって現実は難しくても
せめて相手するのが当たり前という思想だけでも増やさないようにしようよという感じ
で、そういうのはWebプログラマの義務であり共通認識じゃないの?という戸惑いがあって
そういう意味でその場しのぎのjQuery推しはエゴだって言った 料理質問スレで旨みを出したいという質問者に対して味の素ばかり勧めるようなもんだろ
味覚は千差万別だし最初から全日本人向けに調整されている味の素を使うべき
1から出汁を作るのはナンセンスだよとか言われちゃ
調味料を全否定する気がなくとも一部の料理という行為自体を大切に思っている層から顰蹙を買うのは分かる
でも実際質問してきてるのが今日の献立に悩む主婦なら味の素を勧めたほうがいいだろうけどな
実際そういう人の割合が高いと思うし、その人達に料理を深く学ばせようとする事にどれだけの社会的価値があるのかね 標準DOM、APIが扱いにくいだけだろ?
jQuery叩いたって仕方がない扱いにくいのは事実なんだからな 扱いにくいのは絶対間違いない
だから実際はライブラリ使うか作るかになる
せめて例えばnew Elenent({attributes})とかできればいいのに
そうなるなる言われて何年経っただろうか?
CSS HなんとかとかよりDOM直せよとつくづく思う >>814
おまえのエゴを押し付けないように
単におまえが質問にDOM APIで答えればいいだけの話
俺はjQuery版を書くだけの話
こちらは選択肢を提示するだけ
あとは質問者が選べば良い
おまえの考えを押し付けるな 別にjQuery使ったからってDOM APIを使えなくなるわけじゃあるまいしw
どうも能力が低いやつが多いよな
自分がjQuery使ったらDOM API使えなくなるからって
他人も同じだと思わないように
他の人はjQueryを教えたってDOM APIも使えるんですよ? >>813
ひどいなw
jQueryを批判することが出来ないから、
理由もなしに別の何かに例えて、その別の何かの話にすり替えてそっちを批判してる
カレーはウンコ色。ウンコは汚い臭い。だからカレーも同じだと思うだろう?という
非論理的な思考をしてる
例え話のダメな使い方だね。ちょっとそれは議論する能力が低いとしか思えない 時は金なり
必要であれば時間に余裕がある時に掘り下げて学習すればいいことよ
これも能力な >>811
> 実際はJS切ってる人でも最低限閲覧できるようにした状態で
> プログレスエンハンスメント的に作っていくことだって必要だし
> 一般的な質問においてjQueryを使うのはマイナスでしかないけどね
それjQueryを使わない理由になってないよ
プログレスエンハンスメント的に作るんだろう?
DOM APIを使って、それをそのままjQueryに置き換えられるんだから
つまりjQueryを使ってプログレスエンハンスメント的に作ることも可能
AngularやReactなどのフレームワークの類ならJavaScriptをオフにしたら
なんにも表示されなくなることがあるがjQueryはそうではない ■ このスレッドは過去ログ倉庫に格納されています