+ 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/ 古いブラウザは動かなくさせられるメリットがある、とか >>712 いや、メリットは暗に言ってるだろ 管理するライブラリが減る、管理しなくて済むと 仮に倍違うとしても、ここで質問されるのはせいぜい数行のもの その数行の節約のために質問者にjQueryのDL、もしくは管理と 勉強を強制するのはそれこそメリットよりデメリットが上回ってるでしょ バグ対策とかいうのもここでの質問には基本的に必要ないんだよ まあ仮に質問者が教えていただいたコード僕のIE6じゃ動きませんと言ったとしても じゃあjQuery使うと良いよというのが良いのかどうかは分からんがな 必要に応じて適切なライブラリやフレームワークを推奨するんなら分かるけれど 何でもかんでもjQuery有りきっていうのは間違ってるってことでしょ メリットが有るなんてどのライブラリやフレームワークだって同じだし ならこの世の全てのライブラリやフレームワーク使うのか?って話になる >>714 > 管理するライブラリが減る、管理しなくて済むと 普通の言語だったらそうだろう だけど、ブラウザの場合はどうしても避けられない ブラウザの種類というものが有る。 ブラウザの種類を管理しなければいけないんだ。 jQueryを使うと管理するブラウザの種類が減る それぞれのブラウザのバグの対応を行ってくれる そっちのメリットのほうが大きいよ >>715 > 必要に応じて適切なライブラリやフレームワークを推奨するんなら分かるけれど > 何でもかんでもjQuery有りきっていうのは間違ってるってことでしょ いや、場合によってはjQueryじゃなくてlodashを勧めたりしてるよ momentを勧めたことも有る。なんでもjQueryではなく その他が適切な場合は別の方法を提示してるよ。 単にAngularやReactが適切な質問がないってだけ それは俺が適切じゃないと思ってるだけで、 jQuery以外のライブラリやフレームワークが適切だと思えば その例をサンプルコード付きで出してあげればいいじゃない >>714 > 仮に倍違うとしても、ここで質問されるのはせいぜい数行のもの > その数行の節約のために質問者にjQueryのDL、もしくは管理と 人生で数行しかコードを書かないならそうだろうね。 でも違うからね。 >>716 だから上でも一度言ったがお前の仕事ならそうすればいいさ 俺も仕事ならそうする でもこのとかのスレの性質上コード作成依頼は当然お断りだし、一問一答のような場合が殆ど レベルとしては小中学校の義務教育内容なんだよ jQueryを使ってどう書けますか?どういう道具を使えば実現できますか?という質問なら その都度、何も考えずにこのライブラリ使えばこれで済むよ、でいいんだよ でも質問者的にはJSを勉強しよう、理解しようという趣旨で一般的な質問してきてる場合が多い ここは「JavaScript を自ら学ぶ人のための質問スレッド」だからね そうじゃないと必然的にコード作成依頼に近くなってくる その上でここなどでの回答というのは最も単純に物事を解決できるものではなくて きちんと質問者がJSの勉強を出来るものでないといけないんだよ 誤解しないでほしいけどそれはライブラリの話するなと言うことではないよ ただjQueryは必須だといってJSに全く向き合おうとしないのは、 何だかんだ理由つけて完全に素のJSから逃げようとするのは行き過ぎということ 質問者に決めてもらえばいい 『私は小中学生なので高校や大学で習う公式で教えないで下さい』か 『私は社会人なので率直に役立つ方法を教えて下さい』か >>719 質問者を育ててるつもりかもしれんがそれはお前のエゴ 育つやつは勝手に育つ 俺達は自由に解答すればいいだけ それをどう捉えて活かすかは完全に質問者の責任 そんなに「JavaScriptを学ぶ」に こだわるならDOM APIはブラウザが提供しているAPIであって JavaScriptではないと言わないといけないな。 どうせダブルスタンダードなんだろうけどな。 ChromeでのみWebGL2のcreateVertexArrayが時々nullを返すんですけど返す条件って分かりませんか? あとcreateVertexArrayやcreateBufferで作成したオブジェクトも参照が切れた時点でGCで回収されるので明示的にdeleteしなくても大丈夫ですよね? >>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を批判する人たちって要は ここくらいでは理想を語っても良いじゃないかという事なのだろう ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる