+ JavaScript の質問用スレッド vol.134 +
レス数が1000を超えています。これ以上書き込みはできません。
通常のジェネレータはあんまり使い道はないが
asyncになるとイベント的なことに使えるのでかなり重要な存在
これがあれば、whileループみたいに描くしか無いところをfor awaitで書ける そうでもないと思う
ジェネレータの良いところは、継続状態と返り値が同時に抽象化されてることだから
for awaitならそれを抽象化されたまま自然と扱えるが、
whileを使った場合その抽象化システムを丁寧に自分で組み立てるか、
その場その場で適応的に書くか、もしくは妥協しないといけない ftp%3A//ftp2.shuwasystem.co.jp/pub/book/javascpermas/chap09.zip
これのsec04/dragdrop.htmlの26,36行のpreventDefault()ってなにを取り消してるの?? あ、ちなみに、ページ内の「ドラッグできます」というのを上の四角の領域にドロップすると要素が移動するというコードです。
それから34行のcurrentTargetとtargetと違いもわからないです。
targetに書き換えるとドラッグしても何も起こらなくなるのはなぜだろう んなURL持ってくんなよ
しかも度々書籍ステマ・書籍アフィが出てるスレで「コンピュータ、パソコン書籍の出版社」が
アクセス統計でも得たいのか 本買うと特典でサンプルDLできるとかのあれか
本買ってないやつがDLするわけにはいかないし
本買ったやつならURLなんて出さなくてもわかるだろうし
何より本書いたやつか出版社に聞け >>92
データのID作るときとか便利
ループだとそのループ中でしかできないが
ループ以外でも簡単に連番等つけれる
同じ理屈で数列つくるときに便利。
遅延評価で無限数列つくるときとか。
ま、あんま使わんと思うが。 調べるべき用語が分かってるんだからググった方が絶対いい結果を得られるよ >>97
$('a').click(function(e){ e.preventDefault(); });
例えばこれなら、a タグによるページ遷移という、デフォルトの動作が取り消される
jQuery のイベントバブリング、preventDefault()・stopPropagation() を参照 >>97-98
http://jqueryui.com/droppable/
jQueryUI の、Draggable, Droppable のソースコードを見れば? JS違法だって
おまえら逮捕だね
【ウイルス】WebサイトでJavaScriptでPCに負荷をかける行為は違法 警察が検挙
http://asahi.5ch.net/test/read.cgi/newsplus/1528979221/ パターンマッチ関数って何のためにやるのですか?
回りくどいな、という印象しかなかったのですが JavaScriptで配列をすごい勢いでループしてる時に
緊急停止ボタンが押されたらブレーキをかけることはできますか >>115
質問者じゃないけど興味があるので理由を詳しく聞かせてもらいたい setTimeoutやsetIntervalで再帰させてれば緊急停止できるのでは
概念的にはもはやループじゃなくてタスク管理だけど > setTimeoutやsetIntervalで再帰させてれば
再起である必要はないね 緊急停止ボタンのクリックイベントでkinkyubrake = trueしておく。
ループではkinkyubrakeがtrueのときはbreakするようにしとけばいい。 緊急停止っていみわからんけど
再帰で無限数列とかつくるとオーバーフローでエラーでるが
それを回避するためにsetIntervalに入れるんだが。
そういうことじゃねぇのか? そりゃ別の問題だろ
jsエンジンの保護機能があって、理解した上でそれを回避する手法を使う
そこにユーザの停止意思は関係ない 皆様ご回答有り難うございます
長い時間がかかる計算をさせているのですが
私のラスクトップはこの時期長時間動かすと熱で落ちてしまいます
その兆候が現れた時に、物理的なUSBボタンが押されたら
全タブの処理を抑えたいと思っています
完全に止まらなくとも構いません
再開はしたいです つまりオーバーフローによる問題を回避するためではなく
エアフローによる問題を回避したいわけですな
ドヤァ ラスクトップってなんだデスクトップなのかラップトップなのかどっちだ
PCごとスリープさせたらダメなのかね とりあえずJSの仕事では無さそう
プロセスごとのCPU使用率制御かなんかを調べた方が多分近道 >>116
厳密には同期的繰り返し処理では割り込み処理出来ない オライリーのサイ本はもう新しいのは出ないんでしょーか?
7版待ってるんですが 今までOOPでやっていた部分をFPで書いていてふと思ったのですが
FPって名前空間汚しまくりじゃないですか?
例えばOOPだと
hoge={sum:()=>{}}
みたいにhogeだけですみますがFPだと
hoge=()=>()=>{};
sum=()=>{};
みたいに延々増えていくような?気がします
そういうものなんでしょうか? サイの絵の表紙のサイ本
JavaScript 第6版、2012、David Flanagan
初めてのJavaScript 第3版 ――ES2015以降の最新ウェブ開発、オライリー、2017
Flanagan は、Java, Ruby など色々な言語の本を書いてる。
最近は、何をやってるのかね? >>133
>>135
まだ持っていなくこれから学習始めるのに本が欲しかったんですが、第6版は古いから手が出しづらいです。
6版買うくらいならいっそのこと古本の5版でも構いませんか? 良いか悪いかで言ったら俺は悪いと思う
要するにJSの実際はそんなには難しくもないんだけど、
適切な解説が少ないプロトタイプチェーンやスコープチェーンだったり
多くのJSerが曖昧にしてきたであろう基礎的な仕組みに近いところを
まんべんなくそれなりに分かりやすい解説が載ってたっていうのが価値だった
だけどその他の部分のテクニックとかも肌感覚が古くなってきてるし、
今なら当然合わせて知っておきたいクラス構文やモジュールなんかも学べないしな
まあ物好きでお金と時間に余裕があるなら、
一旦ES5までの知識を付けて個別にアップデートしていってもいいとは思うが >>137
ありがとうございます
第6版も古いからオライリーに拘らず他所の新しい本の方がよいでしょうか? Javascriptで、生成されたオブジェクトを終了するために、
VBSで言うところのNothingを使いたいのだけれど、
どうも使わない感じみたいで、困ってます。
Javascriptでは、もしかしてnullとか使うでしょうか?
ヒントでもいいので教えてください。 変数にnull代入
参照してる変数が無くなればgcがいつか解放する >>138 わからん
サイ本のように一昔前は中級者や中級者になりたい人向けという幅広い括りで取り敢えず読んどけという本もいくつかあったが、
今の時代は難しい 大昔におけるオライリー本ですら有効性はクエスチョンマークだった
今や書籍の価値なんてGCに回収されてる > 今や書籍の価値なんてGCに回収されてる
どういう意味? >>142
どうもありがとうございます
参考になりました Javapcriptのスリープ実装って永遠の課題なんか?
代替手段はどれも使いづらいし、
何でこんなことになっとんのや? 俺のスニペット帳より。元ネタは確かtry-puppeteerサイトのコード
なぜか5ちゃんのセキュリティゲートウェイに引っ掛かったので全角で貼る。
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
await sleep(5000); >>146
Atomics APIでできるよ
Atomics.wait()とすればそのまんまスリープする
ただメインスレッドでは禁止されてる場合が多い
メインで待機しちゃうとUIが止まっちゃうからね
でもWorkerなんかではSharedArrayBufferと組み合わせて効果的に使えるよ
ただ今は例のCPUサイドチャネル攻撃脆弱性問題のおかげで
情報が抜けてしまうのでデフォルト無効にされてるが でもAtomics APIってJavaScriptじゃなくて
ブラウザのAPIですよね?
NodeJSでは使えませんよね? >>149
違う。列記としたECMAScriptの仕様だからV8にも載ってるしNodeでも使える
ただマルチスレッド動作が上手く行くかはわからんが chrome、firefox、edge、safari などメジャーブラウザ全てでメインスレッドでは使えない。ワーカー内でしか使えない。
実質役立たず。 そういうruby信者みたいな情けない言い方はやめろ
やるやらないとできるできないは違う
できるけど理由があってやらない、が一番かっこいい 要素Aがあって
<div id="A"></div>
この要素Aに要素Bを動的に入れ子したとき
<div id="A"><div id="B"></div></div>
要素Aが膨らんだので
要素Aの大きさを取得したいのですがどうやってやりますか?
(そもそもAが膨らまないように、、みたいな話ではなく単純に、
予想外に膨らんでしまった要素のサイズを取得してみたい、という用途です) scriptをbodyの末尾に置けばreadyハンドラを待つ必要ないと思いますが
このやり方に何か問題ありますか? >>155
簡単にできるけど、理由があって禁止されたんだよ
最初期はそういう縛りなく実装されてた
理由があるなら最初からできないほうが良い
過剰に自由なことはデメリットのほうが大きい >>157
要素にJSを適応したい場合はカスタムエレメントを使うこと
そうすれば要素が出現する前に定義できるし、
出現した瞬間に効果が適応される
コンポーネント化もしやすい こういう人ってネット以外でも周りの人の会話に対して一々ケチをつけるのだろうか? 低能を悔しがらせようと思ってJS質問スレでそんなレスをしたのか 適応はadapt
適用はapplyとかadoptやな 効果が「適用」される
だとしてもおかしいがな
効果が反映される
とかだろ いや違うだろ
言葉の組み立てとしては正しくともニュアンス的にな
「誰々が何々を適用する」は自然だが「誰々が何々を反映する」はより不自然
つまりは「反映」よりも「適用」と言ったほうが誰がそれをするのかイメージされやすいんだよ
そして今回のように「(自然と、勝手に)〜される」と言いたいのなら
「誰によってか」を意識させにくい「反映される」のほうが適切 >>158
ありがとうございます
>>160
カスタムエレメントというのは聞き慣れない言葉ですが
それは素のJavaScriptで出来るのでしょうか?
なんかフレームワークっぽい響きがありますが 日本語的には「効果が」に続く言葉としては「反映」「適用」どちらもおかしいんじゃないか
効果とは通常は一定の結果をあらわす言葉
何かに対して、規則・ルール・設定などを反映・適用した結果、あらわれるのが効果
一定イベントに特定の処理を当てはめる際も同様
逆に、設定画面で設定を変更したときに押すボタンが「適用」なのは正しい いや、「適用」が使える場面は限られるよ
プロフィール画面で、公開ルールを設定する場合には使えるけれど
ニックネームなどを設定する場合には使えない
「適用」っていうのは値をそのまま当てはめるような場合ではなく
応用して使う場合にのみ使える言葉
例えば同じようなケースでも、マイプロフィール画面で
「プロフィールに『A』スタイルを適用する」とは言えるけれど
「プロフィールのスタイルを『A』で適応する」とは言えない
Aというスタイルは適用できても、スタイルの名前を指定する際は「適用」は使えない >>173
ようするに「を」はOKだけど
「で」は適切じゃないって話?
○ プロフィールに『A』スタイルを適用する
× プロフィールに『A』スタイルで適用する
○ プロフィールのスタイルに『A』を適応する
× プロフィールのスタイルに『A』で適応する >>174
厳密には違う
キャラクターメイキングで
「彼女」に「我慢強い性格」を適用する
に比べて
「彼女の性格」に「我慢強い」を適用する
は明らかに不自然だろう
後者はよく捉えたとしても結局
「彼女の性格」に「我慢強いという性格」を適応すると言ってるのと同じだ
そして先にも言ったようにただ固定値を貼り付けるだけであればあるほど「適用」というのは不適切
例えば、ゲーム開始以降に
「彼女の性格」に「より我慢強い」を適用する
なら
「彼女の性格」に「より我慢強い」を設定する
よりは適切だ 要するにAがBにただなるときはAにBを適用するというなということか >>175
> キャラクターメイキングで
> 「彼女」に「我慢強い性格」を適用する
> に比べて
> 「彼女の性格」に「我慢強い」を適用する
> は明らかに不自然だろう
いやべつに?
だって、性格の他に髪型とか身長があるだろ?
「彼女の髪型」に「ショートヘア」を適用するは自然だけど、
「彼女」に「ショートヘアの髪型」を適用するとか
「彼女」に「150cmの身長」を適用するとか冗長じゃん 「適応」あってるじゃんか
言い返せないから、往生際が悪いとか
意味不明なこと言って逃げたんでしょ? >>173
>ニックネームなどを設定する場合には使えない
>「適用」っていうのは値をそのまま当てはめるような場合ではなく
>応用して使う場合にのみ使える言葉
・法令を適用する
・3秒ルールを適用する
応用じゃないんだが。辞書ひいてこい
「(入力した)ニックネーム(設定)を」「(今使っているソフトウェアに)適用する」
字面だけ見てもダメ >>181
それを応用っていうんだよ
>>176の言う通り しれっと応用にすり替えてんじゃねーよ適応は間違いだろうがw 「適用」が
>応用して使う場合にのみ使える言葉
かどうか、って話だろ? substringとsubstrのメソッド名ってちょっと適当すぎるのでは? 初心者です。JavaScriptを簡単な電卓代わりに使おうと思うのですが
平方根などを知りたいときにMath.sqrt(5)などとやるのが面倒です。
この組み込みオブジェクトの宣言を取っ払って
sqrt(5)とやるだけでMath.sqrt(5)が実行されるようにするにはどうすればいいですかね。
というかそうでなくても例えばPythonのように
import math as m
とやれば
m.sqrt(5)
のようにタイプしやすくなりますがJavaScriptでもそのようなことがしたいです。 原点に戻ったほうが良いぞ
まず英語版Windowsはどうなっているか?
https://i-msdn.sec.s-msft.com/dynimg/IC8950.gif
↑この機能がapplyだ
俺に認識では
・設定を反映させて閉じるのが OK
・設定を反映させないで閉じるのが Cancel
・設定を反映させて閉じないのが Apply だ
OK、Cancel、Appyにダイアログを閉じる or 閉じない
という意味がないことは同意するよな?
で、閉じる閉じないを省略しつつ、簡潔に書くと
・この設定内容でOK
・この設定内容をCancel
・この設定内容でApply
あとは日本語の問題だ
この設定内容[で/を]応用・・・言わない
この設定内容[で/を]応用する・・・言わない
この設定内容で適用・・・ぎりぎり言う
この設定内容を適用・・・言う
この設定内容で適用する・・・言う
この設定内容を適用する・・・言う
これは翻訳の問題なので(意味はApplyが適切だと英語版Windowsで決定されてる)
応用という言葉は適切ではなく、適用がふさわしい
応用して使うとかいうのは意味不明。だって「テコの原理の応用」。とか
そういう使い方をする用語なんだから。設定内容を応用するとか言わないでしょ? 194ですが自己解決しました。すいません。
とりあえず
推奨案
m=Math
console.log(m.sqrt(5))
最適案
with (Math) {
console.log(sqrt(5))
}
だったので後者を採用しました。 >>173がそもそも的はずれなのは、
「適用」がニックネームに対して行う操作ではなく
ダイアログに対して行う操作であることに気づいてないからだな
プロフィールという設定があるとして
「Aスタイル」というのは「プロフィール」の選択値
「適用」というのは「プロフィールの設定ダイアログ」に対する操作
「プロフィールにAスタイル」を「適用」するんじゃなくて、
「プロフィールとしてAスタイルを選択した設定内容」で「適用」するが正しい
そこがごっちゃになるから的はずれなことを言うわけさ
この設定内容で設定した値を使うわけだから「適用」
応用っていってしまうと、
(この設定内容は使わずに)この設定内容を応用して何かを作ってそれを使う
というニュアンスになってしまう
設定内容に対しての「適用」はどんな場面でも使えるよ。
そもそもOKしてダイアログを閉じないってだけなんだから
OKの代わりとし使える >>196
withはなにがあっても使うなって言われてるだろ? Math.sqrt(5) は Math.sqrt(5) と書くのが普通
どうしても sqrt ってしたいなら、
const sqrt = Math.sqrt.bind(Math)
const sqrt = Math.sqrt でも動くと思うが、sqrtメソッド内のthisが異なる
constが使えないブラウザの場合はvarで代用 >>199
ありがとうございます。
しかしそれだと
sinやlogやabsやら全てに対しその宣言をしないといけませんよね。
それはちょっと面倒です……。
それと、後出しのようになってしまいますが、完全に個人目的(ブックマークレット)なので
evalやwithなど危険性・脆弱性のある機能を使ってもいいかなと思っています。
他人が触らず、かつ入力されるものが完全に把握できている場合でもevalやwithの使用は控えるべきですか? Microsoftって昔J-Scriptっていうのを作ったのにどうしてそれを放棄してAction Scriptを作ったん? ActionScriptじゃなくてTypeScriptだった Math.sqrtって打つのが面倒なら
m.sqrtって打っていって
最後にm\.sqrtをMath.sqrtに置換すりゃいいじゃん >初心者です。JavaScriptを簡単な電卓代わりに使おうと思うのですが
JSを使って簡易電卓を作ってみたい
なら少しわかるが
初心者が、JSを電卓代わりに使う、とか意味わからん >>201
JScriptは大人の事情で名前を変える必要があっただけで
実質はJavaScript。開発当時は標準仕様などなく
どのブラウザも好き勝手JavaScriptを発展させたので
互換性がない部分がたくさんあった
標準仕様が作られたが、いちばん重要な互換性を保つために
IEはJScriptの開発を続けていったが、ようやく互換性を切り捨て
標準仕様に準拠できるようになった。
TypeScriptはJavaScriptをもとに改良したもの
JavaScriptの標準仕様を満たしており、+αで機能強化されてる。
JScriptが標準仕様を満たしてないために切り捨てたものにたいして
TypeScriptは標準仕様を満たしてなおかつ拡張されているところが違う ここまですべてくそ
わからないものにはクソをする
ワハハ バタン! >>200
何個使う気が知らないけど
let {sin,log,abs}=Math
みたいにできるし、10個未満なくらいならwith文使わなくても
煩雑になったりはしないと思うよ だな。
用途がブックマークレットって言ってるしIIFE使うんだろうから、
(function({sin, log, abs}) {
})(Math);
ってやってもいい。 a = !a
みたいな処理が一度に出来る代入演算子ってありますか? jqueryのtextメソッドを使って改行を表示させる方法はありますか?
文字列の中に"\n"を書いても改行になりませんでした ソース上での改行かhtml上での改行か
html上なら無理 無理なんですね
ではhtmlメソッドとHTMLエスケープを使ってやります
ありがとうございました 改行は、<br> だろ
改行を使わず、<p> でも良いかも テーブルタグでクリックしたtdを連結するにはどうすればいいでしょうか? よく考えたらjqueryのtextメソッドって
文字列にHTMLをかけてinnerHTMLに代入するメソッドではなくて、
テキストノードを作成するメソッドですよね
たからbr要素を入れられないのも当然ですね ×HTMLをかけて
○HTMLエスケープをかけて
でした JavaScriptファイルを編集してもキャッシュが読み込まれてしまう時がありますが
条件はあるのでしょうか? >>220
エスケープなどしない
DOMを覚えて、タグを挿入している感覚を改めた方がいい 質問です。このシステムの名前を知らない為、長文になりますがよろしくお願いします。
サイトの中にあるリンクをクリックすると当たり前ですがリンクに組み込まれたurlに飛ばされます。
しかしこのリンクに組み込まれたurlをコピーし別タブで開くとサーバーエラーになりページが表示されません。
そこで、
質問1:このシステムの名称があれば教えてください
質問2:この現象(コピペするとエラー)を回避し、例えば自作のページに画像を貼るコードサンプルをご教授お願いします ・そんな糞なシステムを真似ないほうがいい
・そんな糞な仕組みを実装すると弊害が出る そういう「外部からの勝手なアクセス」は迷惑行為として対策されていることがあります
著作権侵害などの問題が発生する可能性もあるので、できるとしてもやりたくないですね ページAからページBのリンクを踏んでページBに遷移するときも、
直接アドレスバーにページBのURLを打ち込んで移動するときも、
そのサイトのサーバーにはページBに対するリクエストがクライアント(=ブラウザ)から来るわけですが、
この時クライアントがいっしょに送ってくる情報を調べて動作を変えることができます。
質問の動作の違いは、恐らくその情報のうち、リファラーというものを見てサーバーが動作を変えている(そういう風に作って/設定している)のだと思われます。
リファラーは簡単に言うとひとつ前にいたページのURLです。
アドレスバーに直接打ち込んで行くとカラなので区別できます。 >>222
普通はキャッシュから読み込まれる
故意にキャッシュを捨てるか、ページをリロードするか、
ファイルが変更された都度、ファイル名を変えるなどすると、
更新後のファイルが読み込まれる
>>224-227
履歴だろ。直前のページ。
どのページから、ここのページに来たか >>219
ありがとうございます
rowSpanで下の行のtdを削除したいのですが
複数行ある場合にはどうすればいいでしょうか?
event.target.parentNode.nextSibling.nextSibling.nextSibling...
とクリック毎にnextSiblingを続ける方法がわかりません >>231
rows, cells, cellIndex, rowIndex jsSHAは
生成したオブジェクトを再利用することは出来ないのでしょうか?
ハッシュを生成するたびにオブジェクトをnewするのは無駄な気がして気になります 40桁の16進数を、36進数にしたいです
基数変換はtoStringで出来ますが、40桁の16進数はJavaScriptで扱える数の範囲を超えてますよね?
どうやればいいですか? >>235
n進数のnを基数というのかと思っていたのですが、どうも違うようですね
n進数のnのことを何と言いますか? 基数を辞書で引くと
記数法で、基礎として用いる数、すなわち〇(ゼロ)から九までの整数。
と書いてあったので、これはちょっと違うのかな?と思ったのですが、基数でしたか
ありがとうございました それ国語辞書とかで調べてない?
基数って言ってもいろいろあって、IT用語ならまさにn進数のことだし、数学用語ならa^n(べき乗)とかlogaN(対数)とかのaのこと
基となる数は基数 >>235
V8はBigIntが実装されたので、Chromeやnodeでは
BigInt('0xcafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafe').toString(36);
が使える >>240
国語辞典で調べてました
文脈によって変わる語なんですね
ありがとうございました
>>242
それはどういうものでしょうか
自分の理解の範疇を超えています
40桁の16進数はJavaScriptで扱える整数の範囲を超えているので、
組込み関数ではなくてアルゴリズムでやるってことですよね
16進数から4進数は、各桁を4で割っていけばいいだけなので簡単そうです
でも4進数を36進数にするのは、そう単純じゃないですよね
4進数n桁が36進数m桁と同じになるのでしょうか? >>232
度々すいません
左隣りの縦列にrowspanがあるとcellIndexが変わってしまいますが
これはどうすればいいでしょうか?
http://jsbin.com/gonenedopi/edit?js >>243
そうかね
36^0の桁だけ先に計算しておけば、36^1以降は計算しやすいと思うが >>241
自分への回答と思わず読み飛ばしていました、すみません
そういうのがあるんですね
しかも、同様の機能を提供するbig-integerという汎用的なライブラリもあるようです
これを使えば簡単ですね
ありがとうございました
>>242
おっしゃる意図が読めません
理系の人なら分かるのでしょうか
四則演算以上の計算は難しいです
でもありがとうございました せっかくBigIntの話を聞いてもライブラリで妥協するとかつまんねえ奴だな
そんなにレガシーブラウザで巨大数を扱いたいのか?
もうそっとしておいてやれ >>248
できました!
適切なアドバイスありがとうございます >>249
は??
electronアプリならいいですが
chromeでしか使えないものをウェブアプリで使えないのは当たり前ですが?
アホですか? フォーム中のenterキー入力で発動する処理の中で、
別のフォームにフォーカスする処理を書いていたら、
フォーカス後のフォームにenterキーが入力されてしまいました
preventDefaultしたら現象は消えましたが
イベント伝播の最中に処理らしい処理をするのはもしかして避けた方がいいのでは?
と思ってきました
イベントハンドラの中ではlodashのdeferのようなもので処理の予約だけしておいて、
イベント伝播が終わった段階で処理が実行されるようにした方がいいのでは?と。
どうなのでしょうか? 単純な処理なら、かまわないだろうけど、
時間がかかる・複雑なものなどは、避けた方がよい >>251
アホはあんただ
そんなこと言ってるといつまでたっても使えない
モダンブラウザは今年中には対応してくるんだから
これからどうするのかという話だとBigIntを使っていこうと言う方が正しい いや間違ってるよ。
create-react-appなどのツールもes2015+で書けはするものの最終的にはbabelでes5に変換している。
レガシーブラウザ対応のためだ。
世の中知らなすぎ。イキリ学生かな?
こんなとこでマウントとってないで勉強しろw >>256
そうなんですか?
それはめでたいですが、
使う側からしてみればネイティブ実装だろうがライブラリ実装だろうが
インターフェイスに実質的に大差ないので、ちょこっと変えればいいだけの話です
マウンティングになってないんですよ
だからアホなんです >>256
マジ学生のうちは勉強しといた方がいいよ。
時間とれるの今のうちだからさ… マウントマウントってゴリラじゃないんだからさ
世の中〜とかどうでもいいわけ
世の中に合わせるために生きてるわけじゃないんだから
そんなゴタゴタしたことは実際にゴタゴタしたときに考えて
最も適切な方法を見つければいいだけ
IEで動かしたいのかもしれないし、Nodeで動かしたいのかもしれない
もし駄目なときはそりゃあ良いように対応すればいい
でも基本的にはネイティブを使っていこう、試してみようと思わないと先に進めないんだわ
要するに綺麗事でいいじゃないかということ
教科書っていうのは大抵は綺麗事だ
それに現実はそう上手くは行かないとケチつけるのはアホ
まず綺麗事があって、そこから綺麗事じゃないことに対応するべきなんだよ
つまりはせっかく教えてくれた人がいるんだからBigIntを
もっと積極的にできる限り使おうとしてみろよということ
「へー、まそれはまだ早計でしょうからこれにしますわ」じゃあまりに失礼だろう っていうかそこまで新しい技術を積極的に使っていくことに反対するやつの気がしれないわ
babelでレガシーサポートが基本みたいに言うしさぁ
本人は現実的で無難で実際に役に立つ思想のつもりなのかもしれないけどさ
そういう奴らは結局10年前からいるIEガ〜厨と変わらないんだよ
ここに古い環境をサポートすべしと書けば書くだけ自分含む全JSerの首を締めることになるのが分からないのか
まだ吸収力がある初心者にこそケツひっぱたいてレガシー環境から遠ざけるべきなんだよ
それが俺たちのやるべきことだ
未熟な人に物事を教えるってことは甘く考えちゃいけない
学校の先生だって道徳で綺麗事を教えるだろう
それが変わりにいかに小狡賢く生きていくかを教えたらどうなる?
お前らがやってることはまさにそういうことだといい加減気づけ
お前らが根絶するまで俺はあえてこの極端なスタンスを取ってバランスを取る
これは俺がJS質問スレ20か30のころからずっと続けてきてることだ
わかったか?? ケンカをする悪い子は
スパークリングワイドプレッシャーで
お仕置きなのだ! 確かに古いブラウザを切り捨てないといつまでも新陳代謝が進まないということはあると思いますが
BigIntは時代遅れになったブラウザに欠けている標準的機能というより
最先端なブラウザにようやく実装されはじめた先進的機能ですよね?
ですからそれを使っても新陳代謝に寄与することはないんですよ
はい論破 stage4に入ってpolyfillも整備されたら使い始めれば良いと思う 最初にBigIntを紹介した者ですがこんなキチガイ中学生に背乗りされて荒らしの道具にされるとは思ってもみませんでした。
最初からポリフィルライブラリのほう紹介すればよかった。
申し訳ない。 使えもせんもの紹介しっぱなしで逃げといて被害者ヅラとか片腹痛いわ >>261
XHTML2やECMAScript4の失敗がある今でもこんなことをいう人がいるんだね
そういうことは、全人類を従わせるだけの力を身につけてからいいなよ >>261
> ここに古い環境をサポートすべしと書けば書くだけ自分含む全JSerの首を締めることになるのが分からないのか
誰も古い環境をサポートすべしとは言ってない。
現役のブラウザをサポートすべしと言ってるだけ babelを使うとサポートしてない古いブラウザでも動いてしまう
だがウェブ標準で書いてもChrome 1(2008年リリース)という
サポートしてない古いブラウザでも動いてしまう
それとなにも変わらねぇ
わざわざ古いブラウザを切り捨てる意味はない 世の中から古いブラウザが消えないと新しい機能が使えない?
アホか。古いブラウザが消えなくても
お前がサポートをやめれば新しい機能は使える
昔流行ったIE6以上推奨です。みたいな文章を入れるだけの話だ 蔵「IE6で動かないのですが?IE6以上で動くと言っていましたよね?至急この不具合を直してください。ハヤク!」 そりゃIE6以上で動くことを保証していれば
対応しないといけないだろうな。
ホントな、サポートの意味をわかってない
馬鹿(>>277のことな)が多すぎw
サポートしないためには、動かなくしないといけない!
だからbabelを使ったらいけない
動いてしまったら、サポートしてることになるんだ!!
って思うのかね。アホかと
はいはい。Chrome 1で動いてしまったら
サポートしてることになるんですよねー(アホ理論では) 今年後半ジャバアプレットっていうのが流行るらしいです
去年マイナンバーのサイト?で導入されて話題になったそうですね
名前からしてジャバスクリプトの進化系だと思ってます
まだジャバスクリプト勉強中の身としては先が長いです
この世界は進化が激しいですね
みんなもうジャバアプレット使えるんですか?
ついて行けててすごいです… とりあえずwin8.1のサポートが終了すれば
理屈上はIE限定の環境はほぼ無くなるハズ みんな新しいほど優れてるとは限らないんだぞ
これからはアップルウォッチの簡易ブラウザもサポートしないといけないんだから クライアント「つまり、Google Chromeだけが対応ブラウザなのですね。IE12,Firefox,Safari...eycはサポートしないのがトレンドと仰るのですね。」
>>261「はい。世のブラウザはもっと、レガシー環境から遠ざけられるべきなんです。Google Chrome以外は全てレガシー環境。世の中の人が皆、Google Chromeを使えばいいのです。」 うち過半のアクセスがモバイルSafariなんやけど〜 いま一番問題になってるのは、古いAndroidスマホを
使い続けてるやつやで node.js難しいので導入とかしてないのですが
npmでインストールしてimportするのと
scriptタグで、なんとか.min.jsみたいなのを読み込むのって
何か違いがあるんですか? テキストやバイナリの1バイト目だけ取り出したいときって
text.substring()するしかない? 来年でなるからそれを記念してされたらいいな。 してるかも。 >>291
HTML 内で読み込むのは、普通のやり方。
一方、npm で読み込むのは、そのフレームワークのやり方
Rails でも、実行環境は、Node.js だよ。
Node は画面機能として、すべての言語で必要
web アプリは、HTML, JavaScript で画面を作る × HTML 内で読み込むのは、普通のやり方。
○ HTML 内で読み込むのは、昔ながらのやり方。
× 一方、npm で読み込むのは、そのフレームワークのやり方
○ フレームワークではなく、改良された新しい標準的なimport方法
× Rails でも、実行環境は、Node.js だよ。
○ ビルド環境がnode.js 実行環境はブラウザ
× Node は画面機能として、すべての言語で必要
○ 必要ない
× web アプリは、HTML, JavaScript で画面を作る
○ HTML、JavaScriptを使わず、それ以外の言語だけで作ることもある npmってつかったことないけど
どっかからコピーしてきたjsファイルと
そのjsファイルに関するメタ情報(バージョンとか)が記述されたjsonとかのファイルを
プロジェクトフォルダに配置して
jsに更新があれば更新してくれるようになるみたいな代物? nodejs
package
manager
npmが管理するパッケージは基本node専用。
require()やioなどnode用api使われてるからな。
ただ条件満たせばブラウザで実行できるよう変換できる。
パッケージ次第。
ブラウザ環境で使用可能かどうかはそのパッケージのウェブページなどに書いてある(ことが多い)ぞ。 あと>>297と>>298は嘘松。
なんでこんないい加減なこと書くんだろ… 正直node、nodeって言うほどそこまで良いものとは思えん
javascriptをそのままサーバサイドで、が売りだけど
node専用部分多いし、一定ライン以上複雑な処理書こうとすると途端に面倒になるし
多ユーザを高速にさばくためにnodeを使うとなるとお手軽とは正反対になる
それにコネクション張りっ放しにしてもらうような使い方しないなら、apache/phpで適切にチューンした方が・・・ nodeでコネクション張りっぱなし??ごめん何のこと? 例えばvue.jsのインストール方法見るじゃん
https://jp.vuejs.org/v2/guide/installation.html
cdnをscriptタグでリンクする方法の他にnpmとcliによるインストールがあるじゃん
npm用いてインストールしたらcdn使うのとHTML,Script,Style的に差は出るの?
もちろん通常のクライアントサイドのWeb用途を考慮して 以下のようにしてHTMLのbutton要素を取得したいのですが
var button Elements = document.getElementsByTagName("button")
Twitterのモバイルサイトではbuttonが表示されているのに
Chromeのユーザーエージェントをiphone設定して、HTMLを確認するとbuttonTagが存在していません
https://mobile.twitter.com/search
Ajaxによって動的に書き換えられた後のhtmlソースコードを確認する取得する方法はあるでしょうか? >>308
document.head.outerHTML + document.body.outerHTML >>309 ありがとうございます
document.documentElement.outerHTML では
ChromeデベロッパーツールでiPhoneに設定し
表示されたHTMLと同じになってしまいます
スクリプトだらけでタグ類はほとんどありません
以下のWebアプリで
http://seo.mash-comp.com/seo_tools/html_source_result.php
Twitterのモバイルサイト( https://mobile.twitter.com/search )
のHTMLを表示するとAjaxによって動的に書き換えられた後のHTMLを確認できました
inputタグやbuttonClassが正常に取得できています
このようなWebアプリはどのような手段で
動的に書き換えられた後のHTMLを取得しているのでしょうか? いちいち動的に書き換えられたって言ってるがjsからはブラウザが(静的な)HTMLを解釈して組み上げたDOMしかいじれないのだから普通にいじればそれは動的に書き換えられているHTMLをいじってることになる。
何も特別なことする必要がなくて、なんとも答えられない。
jsから、ブラウザや他のjsにいじられる前のそのページの(静的な)HTML取得するにはどうすればいいですか、というほうがよほど質問らしい質問。(この場合はlocation.hrefをfetchして必要に応じてXMLParserかけるのだが) Reactを勉強しているのですが
Atomic Design の Organisms を人前で読み上げることができません
赤面してしまいます
なぜこんな性的な名称を付けたのでしょうか?
これはセクハラです 野球開始のプレイボーイ!みたいなもんや
気にするな >>315
それはプレイボールでは?
こういう下品なオジサンが鼻の下伸ばしながら用語決めてると思うと許せない >>316
え? だからいちいちプレイボールってきいて
セクハラって思うなって話なんだけど? >>317
そういう単語をあえて使わないでほしいと言っています orga"ni"sm な
元々iにアクセントがあるんだからはっきり発音すればよろしい まんさんに大声で読み上げさせたいわ
オーガニズム、オーガニズム 最大限にハゲを侮辱するようなjsコードありませんか やっぱりこういう性善説に基づいたスレって破綻するよね belief that human nature is fundamentally good >>310
Ruby + Selenium WebDriver で、ブラウザを操作するとか? Seleniumは様々な言語から操作させるドライバーがリリースされていますが、最も保守メンテが滞っているのがrubyとか言うクソ言語です。
Selenium自体はJava製のソフトウェアですから、ネイティブドライバーが使えるJava版が鉄板です。
とはいえJavaはめんどくさいという人はPythonやnodejs用のドライバーがそれに次いでよくメンテされています。 Ruby + Selenium WebDriver で、最新のChrome 67 でも動く Pythonista的に糞言語には同意だけど
特定のドライバーの保守メンテが滞ってるから糞言語ってのはちょっとひどくねw 初心者で、クッキーの設定、取り出しを学習しております。
if(navigator.cookieEnabled)
{
document.cookie = 'key=value';
alert(document.cookie);
}
else{deocument.write("駄目")};
こんな感じでクッキーを設定して、取り出してアラートで表示するようにしたところ、
firefoxやIEではちゃんと表示されるのですが、Chromeだとアラートは出るのですが空白になります。
これはChromeの設定の問題でしょうか?
javascript許可、クッキーの保存読み取り許可しているのですが 昨今ポリシーがどんどん厳しくなってるからそういうことも起こる
オプション含め確実に値を設定し、万が一の場合も失敗が検知できるようにするため
chromeでは今後はcookieStoreが推奨される
cookieStore.set('key','value')
alert((await cookieStore.get('key')).value)
Canaryで試せる 非同期クッキーAPIが入ってローカルストレージの非同期が来ないのはなぜだろう var aud = $("#audio");
$("#next").on('click', function() {
var u = Math.floor(Math.random()*5) + 1;
aud.attr('src', "https://xxx.x.xx.x.x"+u+".mp3");
});
※nextはbutton要素のid です。
ここで質問させていただきます。この次の行にaudのsrcに指定したファイルを再生するのですが、
#nextを押しても再生されるファイルが変わってない(urlに指定していある「u」の値が反映されていない)ため、
思うように作動させることが出来なくて困っています。
なお、この関数は最初に呼び出されていると共に、一番上に書いてある関数です。
どなたかご教授願います。。。 >>340
コピペする過程で全角になってしまった可能性があります。というのもuが1になった時のファイルは再生されるので...... 1のファイルとやらはvideoタグの初期ロードファイルだったりしないか
+で連結する前に、uと".mp3"について、それぞれ末尾にtoString()つけて、toString()含めて括弧で括る > コピペする過程で全角になってしまった可能性があります
コピペでそんなこと発生しないような
コピペした後、手入力し直したのが原因 っていうか自分の質問の原因のコードと
自分が質問のために書いたコードなのに、可能性があります ってなんや 何れにせよ単純なミスっぽいし
まずはエラーメッセージを見て確認してみるのが
正攻法として勉強になると思うよ >>349
何もしてないのに「コピペする過程で全角になってしまった可能性があります」と書けるのか
それとも、何もしてないのに、そう書いていたのか
結論「何もしてなかった」 >>340 - >>348
var i = Math.floor(Math.random()*5+1);
var num = i.toString();
aud.attr('src', "https://xxx.xx"+num+".mp3");
で解決することができました!!皆様本当にありがとうございました!!! >>353
それ、toString() は要らんのだがね
原因「なにもしてないのに、全角になったんです。」 >>339の者ですが>>349と>>350は私の投稿ではないです
5が5と全角になった理由としては当初random()*5はrandom()*2であり、
「1の値のみが返ってくる原因として
Math.floor()以降の数字が小さい数字であるのでは」という疑問を解消するため大きい数字を入れて
テストしていました。その後投稿する際に日本語入力のまま2を5に変更したため5が全角に
なってしまったのだと思います。混乱を招いてしまい、すいませんでした。。。 テストと投稿が関係あるとしたら
投稿時に書き直す必要はないし、そもそも全角の5に気づかないって何のテストになったんだという話
テストと投稿が関係ないんだったら
投稿時に2を5に変える必要がどこにもないよね ええやん別に
お前らもうちょい優しく甘くなろうぜ
おかんやないんやから >>357
概ね同意だけど、おかんはどっちかって言うと「何もしてないのに〜」って言う側やろ Canvasでクロスフェードをしたいのですが、思うようにいきません
具体的には、例えば2枚の画像A,Bを半分ずつ重ねた状態を作るには、
アルファを0.5同士で重ねると良いように思えますが実際にそれをすると背景が透けます
0.5A画像+0.5B画像ではなく、
0.5(0.5背景+0.5A画像)+0.5B画像になってしまうということです
画像だけ分けて合成してから背景と合わせればいいだろうと思うかもしれませんがそれも上手くいきません
AB合成画像のαが(1-(1-(1-0)[無背景]*(1-0.5)[A画像])*(1-0.5)[B画像])=0.75[AB合成画像]となってしまい背景が0.25混じってしまうためです
解決方法を思いつかれた方はご教授ください てかよくよくみたら原因は、全角のみじゃん。
ふつう「単に全角になってただけでした、すいません笑」みたいな返しが自然だが
>>353時点で、全角が原因だとまだ気づいてない or 別の原因があったことにしたい風なテンションはなんなん・・? >>363
javascriptじゃなくそういう画像作れば? <div id="a"></div>
スクロール必要な長いソースコードが続く
<div id="b"></div>
こういう状態で#bにいったときにアクションをしたいのですが
検出方法やどういったイベントを使うのでしょうか? >>367
縦スクロールです
例えばこのスレを開いて>>1からスクロールしていって
>>366のところで画面にalertをジャンと出すような感じです >>363
ユーザーの目
↓
画像A(50%)
↓
背景
この時点でユーザーからは背景と画像Aが1:1で混ざった状態に見えるのは分かる?これに画像Bを50%で更に足すと、それにさらに1:1で混ざった画像になっちゃうわけ。背景:画像A:画像B=1:1:2
背景が透けて見えるのがおかしいと認識してるんだから、次のようにすればいいと分かるよね?
ユーザーの目
↓
画像B(50%)
↓
画像A(100%)
↓(以下は見えない)
背景
割合を変更するには、画像Bのところだけをいじる。画像A:画像B=95%:5%にしたいなら画像Bのアルファを0.05(5%)にする。画像Aはいじらない。 #bの位置yを取得して
window全体をscrollイベントで現在の位置y'を監視して
yがy'になったら発火で良さそうですが
これだと常時scrollイベントが発生するので(位置yになったら解除するにしても)
環境によっては重い 電池消耗が激しいなどの問題に見舞われるので
そのへんうまくできないかなと思ったのですが YouTube とか、その要素が表示されたら、画像を読み込むとかだろ
その要素が表示されたらとか、そういうイベントは無いの? >>365 >>370
ご回答有り難うございます
確かに同形同位置の2枚の画像のフェードの場合はおっしゃる通りなのですが
実際は透過部分を持った不定形不定位置不定数枚のpngが動的に現れたり消えたりし得るというフェードであります
つまり、画像Aに画像Bを重ねる場合
画像Aを100%のままにしておくと画像Bが重ならない部分に問題が出てしまうということです
フェードが50%に達した段階では、
画像Aの画像Bに重ならない部分は背景と1:1で交わってほしく
画像Bの画像Aに重ならない部分は背景と1:1で交わってほしく
画像Aと画像Bの重なる部分はそれぞれ1:1で交わって背景は交わらさせたくないということです
ここからはフェードが同期的に始まったという場合で例を書きますが
もし画像Aのアルファが元々0.5である部分Дと、画像Bのアルファが元々1である部分Бが背景部分Gの上で交わるときは
フェードが50%に達した段階で0.25Д+0.5Б そしてのこる 0.25の部分がGとなってほしいです
もし画像Aのアルファが元々0.6である部分Дと、画像Bのアルファが元々0.7である部分Бと、
画像Eのアルファが元々0.8である部分Ёが背景部分Gの上で交わるときは
フェードが50%に達した段階で0.3Д+0.35Б+0.4Б これは1を超えるので、全ての係数の形が1となるように調整し
Gは全く含まれない、というような挙動にしたいです
要するに、αはフェード段階と画像のアルファに基づいて各画像分加算し、色もフェード段階と画像のアルファに基づき単純に加算する
ただしそのときαの合計が1を超える場合、αを1とし色の合計を調整して、最後に背景と重ねる
というようなうまくいくかどうか分からないアルゴリズムまでは考えたのですが
ピクセル操作などを行わずこういうようなことが簡単にできませんかね
ライブラリのフェードも試してみましたが、やはり問題は起こるようです(少しちらつくというか、浮くように見える)
今まで他の方はどうやって対処されてきたのでしょうか 画像をうまいこと願望どおりに重ねたい、っていうのにjavascript関係ある? >>375
まさにこういったことでできるのであれば良いと思っているのですが、
どう使ったら良いのか検討もつかないので色々試しても上手くいきません
このオプションごとにどういう計算式が使われてるかが分かればまだやりようがあるかもしれません そもそもcanvasでないといかんのかね?
css の transition で済むように思えるが >>378
フルCanvasのゲームなので何とも……
ビュー層をHTMLにしたこともありますが
パフォーマンスや表示互換性、スクリーンショットなどの機能の実現の容易さから
今はCanvasを使って進めています 読み込むjavascriptのファイルを1つに統一することって出来ますか?
出来るならどんな風にやったらいいでしょう?
変数や関数名がかぶったりすると思うのでそこを解決しないといけないのと
あとライセンス的にどうなのかなという問題もありますが
/***
なんたら.js
author Nantara
http://nantara.example.com/
MIT License
**/
/***
うんたら.js
author Untara
http://untara.example.com/
Apache License
**/
こんなかんじで同ファイルに列挙すればいいのかとか >>380
ごくごく一般的に行われています。
なぜならhttp1.1では一つにまとめたほうがセッションを節約でき大抵の場合パフォーマンスも良くなるからです。
複数のjsファイルを一つにまとめたものはバンドルファイルなどと呼んだりします。
ツールはたくさんあります。
私はwebpack使ってますがcssや画像もバンドルできたりするカオスツールなのでもっとシンプルで使いやすいの選んだほうがいいかもです。 >>381
どうもありがとうございます
さっそくwebpackがどういったものか調べて
類似ツールでよさそうなの探してみます コピペした時に半角数字を全角に自動変換するにはどうすればいい? charCodeAt(0) + 0xFEE0でググレ たった10個しか無いんだから列挙すべきだと思うけどな
判定処理+
String.fromCharCode(n.charCodeAt()+0xFEE0)
より
"0123456789"[n] || n
の方が明らかに良いだろ 違うドメインで発生したjavascriptのエラーを捕捉することってできませんか? 違うドメインでエラー発生した際にキャッチしてシリアライズルール決めてjsonで送信
受け取ったらデシリアライズしてスロー 文字も混同した場合の>>384をやりたかったので>>386を参考に
var str="あ3い45う6え6 お2かき47く8け";
var newstr=str.replace(/[0-9]/g, n=>'0123456789'[n]); 横からですまんが
n=>'0123456789'[n]
この記法なんていうの?
無名関数で置き換えるとどんなかんじかな? >>390
アロー関数 (n)=>n
function(n){ return n; }
function(n){ return '0123456789'[n]; } 文字列型の\dを投げてるのに本来整数型のindexとしてそのまま扱うのはちょっともにょる
この例では問題が出ないだろうとはわかっていても 分かってはいたけど人いなかった
https://mevius.5ch.net/test/read.cgi/hp/1507885112/
誰か分かる方あっちのvue.jsスレで助けてください
今日はプロジェクト一回消して明日やり直します >>392
JSの全てのプロパティは文字列型じゃないの? >>387
青島「事件(エラー)はサイトで起こってるんじゃない。ブラウザで起こってるんだ!」 >>387-388
非同期処理は、異なるコンテキスト(流れ)だから、
例外機構は使えないので、戻り値などで知らせてもらうしかない ジャバスクリプトに
スリープがない合理的な理由って何かあるの?
ブラウザの表示が目的だから、
表示を止めないために
必ず処理をする仕様だとか
そんなもんなのかな。 まあ、理屈上は内部でsetTimeoutみたいに扱えばいいだけだとも思えるんだけどね >>401
使いにくいんですよね。
よくあるスリープの代替手段は
メモリ食うし。
スリープ実行でメモリ食うとか、最悪ですよ。 >>400,402
sleepを使う合理的理由がないから sleepって何に使うんだろうな?
待たせたい時?何を? 「真のプログラミング言語にはSleepなど必要ない」ワロタwww
ruby信者のruby擁護みたいな言い種wwwww sleep代わりにpromiseじゃだめなの?
直接的ではないにしろ事足りよね >>404
スリープを使うメリットは
メモリの使用量を減らしたいときとか
ブラウザが固まらないようにとか
任意のタイミングで処理を実行したりとか
とにかくあれば便利だ
まあ、私が初心者というのもあるけど
ジャバスクリプトは、すごくやりづらいです >>407
これはひどい転嫁。
ブラウザが固まらないようにsleep??
pythonなど他の言語でも10秒sleepしたら10秒固まるのでは?
任意のタイミングで処理を実行??
まさにsetTimeoutやsetIntervalの出番では? async関数使えば
例えば
for(){
await fetch()
await sleep(1000)
}
みたいに出来るよ
場合によっては良い感じになると思うし >>407
sleepとpromise(コールバックなど含む)の違いは、
sleepは他の処理が終わってようが終わってまいが、
指定された時間ただ待つだけ
promiseなどは他の処理が終われば即座に
それがわかるわけで待つやり方としてはこっちのほうが良い
他の処理の完了を効率よく待つのはsleepでは実現できないんだけど
なんでsleepがいるの? >>405
> 「真のプログラミング言語にはSleepなど必要ない」ワロタwww
実際そうじゃね? ただ単に待つだけの処理なんて意味ないよ
他の何かが準備できるまで待ちたいなら、
他の何かが準備できたら通知してくれる方が良い
他の何かが準備できるのを待つことに対してはsleepはいらないんだから、
じゃあ他に何にsleepを使うのかと さすがに「ちょっとしたデバッグのために」とかじゃないよな・・
それこそコンソール使えばいいし 何のためにsleepを使うか
重い処理をやってるときに途中途中で画面に反映したいとき
setTimeoutでもなんとかなるけどsetTimeoutの再帰呼出では迂遠になるケースがある
処理Aと処理Bの間にちょっとウェイトを入れたいとき
アニメーションとか。setTimeoutでできるんだけど重なると面倒だしsleepの一行でできると楽 というか他言語でのsleepも原則「他処理にいったん明け渡したい」用途がデフォじゃない?
待つ用途で使うというよりも >>413
そういう処理ならsleepの一行じゃ無理じゃん。ループの中に書かないと。
一方のjsはsetInterval一発なのであったw >>415
例の前者のほうはループ必要だけどサブルーチン化は原理的には必要ない
setTimeoutやsetIntervalはサブルーチン化を強いられる
しかも再設定と離脱の仕組みを入れなきゃいけない分、どうしても複雑になるだろう
例の後者のほうはループ不要 >>409も書いてるけどsleepくらい自分で定義して使えば?
async関数で囲ってIIFEにして使うのが気に入らないかもしれないけどそのうちトップレベルawaitが入るとそれも要らなくなる。
ちなgoogle様謹製のsleep実装↓
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); まあそういう風にやっちゃえば良くもあるんだけどね
ms待機とms以上待機とは厳密には違うということもあるけど実際そうそう問題にならないし
ただ、言語側で用意しようよという話 使いやすいところにsleep()があって気軽に使えるようになると
全体的にみればページロード完了までの所要時間が伸びるから
それを嫌ったのが実際のところじゃないかと >>413
> 何のためにsleepを使うか
>
> 重い処理をやってるときに途中途中で画面に反映したいとき
sleepなんだからそこで処理は止まりますよ?
画面に反映する処理もしませんよ
だってsleepして止まってるんだから
ほんと何言ってるんでしょうかw >>414
> というか他言語でのsleepも原則「他処理にいったん明け渡したい」用途がデフォじゃない?
今どきのOSはマルチタスクなんでー
sleepなんかしなくても他処理に明け渡されます。 昔のゲーム宜しく
sleep(10); //これを挟むとなぜか動く
でもやりたいんか setInterval(hogehogefunction, 0); //こうするとなぜか動く 別にsleep使えばいいじゃん
自分で1行で定義すればasync関数内でそれっぽく使えるんだからさ
勿論setTimeoutというか、ブロッキングが気になるなら
requestIdleCallbackのようなものも検討していいケースもあると思うよ
でもsleep=悪ってことは無いと思うね
例えば同じように悪だと言われるevalよりも遥かに有用なテクニックだろうよ >>422
sleep10秒挟むとなぜか動くってなに
興味がわいてしょうがないんだが >>425
昔のゲームはOSなど無いに等しくハードウェアを直接操作していた。
そしてハードウェアの特定の命令は処理に時間がかかり
命令を出してから一定時間たたないと処理が終わらないことがあった
そういう場合はちゃんとハードウェアの仕様として最低Nミリ秒待つなどと書かれていた
しかし今の時代ハードウェアはOSやドライバが処理し、そのような処理に
一定時間かかるような、割り込みによって完了が知らされるようになった。
これにより処理が終われば通知されるため、スリープのように待ちすぎるようなことも無くなった。
もちろんブラウザでもOSやドライバ、それらを経由して
何かの処理に時間がかかるような場合は、コールバック関数が呼ばれることとなった
そのためブラウザでsleepは不要となった。またsleepは処理が止まり、
表示されたページも固まるのでユーザーインターフェースとしても不適切であり
避けるべきものとなった 10秒じゃなくて10ミリ秒だろ
つうか今でもJSみたいなイベント駆動じゃなくて
その対極に位置するポーリングタイプの言語環境では
ビジーループ回してsleepしながらポーリングするっていうのは普通になされていること
例えばゲームではコントローラーの状況をループでずっと確認し続けて
前回と変わっていれば変化があったと見なす
そういうのは普通に行われていること >>423
直前にdomを操作する処理がある場合、非同期のため、hogehogefunction()とそのまま呼ぶとdom更新前に実行されてしまうことがある。
setInterval 0でラップするとdomが安定した状態で実行させることができる。
サイ本に書いてある。 >>427
だから何度も言ってるけど、sleepしたら処理が止まるだろ
画面書き変わらなくなるぞ >>428
> 直前にdomを操作する処理がある場合、非同期のため、hogehogefunction()とそのまま呼ぶとdom更新前に実行されてしまうことがある。
違う。逆
直前にdomを操作する処理がある場合、同期処理のため、hogehogefunction()とそのまま呼ぶとdom描画前に実行される。 ああミリ病を想定してたのか
細かいのはsleep(0)とかusleepを使うもんだとばっかり ゲームじゃなくても今のPCハードでも
イベントが軸になってるフレームワーク使わないで普通にcで書くと
sleepさせないで重い処理すると「応答がありません」ってなるんじゃないんか >>430
えっ? 自分の書き込み良く読み直してごらんよ。
直前のdomを操作する処理がもし同期処理なら、hogehogefunction()とそのまま呼んでもdom更新後に実行されるでしょ。
そうではなく非同期だからsetTimeout でくるむテクニックがあるわけで。 >>434
じゃあなんか再現する例出してみなよ
DOMの操作は同期処理。
だから何か操作した後にすぐに参照しても操作後のデータが得られる。
ただしDOM描画は同期じゃないがな > そうではなく非同期だからsetTimeout でくるむテクニックがあるわけで。
非同期とか関係なく、他の操作によるDOMの画面更新の後に処理したいからsetTimeoutを使う >>429
sleepを使う言語の多くにおいて描画スレッドは別だろ
むしろ他のスレッド、プログラムにCPUを明示的に明け渡さないと
プログラムはフリーズするしPCも重くなる 最近のブラウザで言うと正確には操作の時点で同期処理とは限らないよ
例えば要素の形を変えたりするような操作は非同期である程度まとめて扱われる
もしgetClientRectsを読んだりするとその時点でブロックして構築・計算される 「操作の時点で同期処理とは限らない」ってことは、同期なものも非同期なものもある、ってことだよな
DOM「操作」そのもので、非同期なもの・非同期になる場合って
具体的にどのブラウザの何?
getClientRects()は操作側じゃなくて描画側の今現在の状態取得なんだから例として不適切では >>437
仕様を読めば分かると思うが、JavaScriptはHTMLパーサに割り込んで同期的に処理されるぞ >>437
> sleepを使う言語の多くにおいて描画スレッドは別だろ
そうだよ? だから描画スレッドでsleepは使えないって言ってるんだが?
だから何度も言ってるけど、(描画スレッドで)sleepしたら処理が止まるだろ
画面書き変わらなくなるぞ 入力フォームが整数かどうかチェックする関数ってないですか?
isNaNは文字列だとダメみたいだしありそうなのに出てこない type number で stepを1にしておけばデスクトップでは整数入力になるでしょ
その後念の為数値を|0すればいいんじゃない >>417
async関数外でもawait使えるようになる予定あんの!?
nodeにそういうモジュールあるのは見たけど >>444
文字列なんだから普通に正規表現でいいんじゃないの >>445
ありがとうございます
しかも最大最小チェックまでできるんですね
JSで値チェックして確認するアクションを作ろうとしてしてたんですけど必要なくなったので嬉しい
HTML5すごいですね
>>448
自分にとっては正規表現は普通じゃないんです
あんな意味不明な文字列かけるの理系のエリートだけじゃないの? > あんな意味不明な文字列かけるの理系のエリートだけじゃないの?
バレターカ そんな大したもんじゃないけどな
まずはワイルドカードの豪華版と考えて使い始めてみては? 便乗で質問
html5のstepで0.100ってやりたいけど
0.1になってしまう
変更されるたびに0付け足さないとだめな感じ? html5のstepの意味が分からないので力になれない ゼロ固定の小数2位、3位を表示させたい必要がわからない
0.001じゃだめなの >>454
stepとは別の挿入する定数が0.123とか1.234で
で、リセット値は0.100
stepを0.001ではあまりに細かすぎるので
固定値挿入後に0.123→リセット→0.100→step 0.2→固定値 1.234
みたいに桁数がころころ変わる てかそもそも例えば
0.111のあとにstep0.100したら0.2になったわ・・
0.211になるかと思ってたけど。 そこまで拘るんならもうPaintAPIとか使って好きなカスタム要素を0から作るしか無いだろうね よくわからんけど、常に末尾に 00 を付けたいなら
それ専用の要素を配置して重ねればいいじゃない
00固定でもいいし、*1000して%100した値で更新し続けてもいいし こちらの都合上、むしろ挙動は>>456で構わないけど
00省略は、数字が真ん中や右揃えだとぴょこぴょこなってちょっとだけ気になる
>>458
別の設定値 や step0.1で1.0が1になったり があるので末尾00固定は難しいけど
そもそも小数点使わない方法だと設定値の数字見た目そのものに意味があるので若干扱いづらい
(例えば3.14みたいな)
>>457
もう妥協することにしたわ
そこまで使用頻度高くないし どうせ妥協するなら諦めなくとも
elem.onchange=e=>{e.target.value=e.target.valueAsNumber.toFixed(2)}
とかで妥協しても良いんじゃない? >>460
自分の環境だけかもしれないがinputの上下矢印にmouseONのままclickだと最初しか反映されず
mouseOUTすると反映
キーボードからは常時反映で良い感じ
外部からjqueryのvalで値を変更すると無反応 今どきはスタイルの制限というものはない
公開される時には整形で揃うから >>467
誤解してるんじゃない?
ただ単にモジュールの非同期読み込み時にもawaitが使えるというだけだぞ
大抵はDOMContentLoadedを待ったりするだろうしそんな便利になるようなものではないよ ブラウザ用でもnode.jsでもいいのですが
英語の形態素解析ライブラリってないですか?
検索の時に活用のゆらぎを吸収するのに使いたいです
madeもmakeでヒットするようにするなど いや形態素解析で出来ますよね?
原形が分かるので。
品詞を分析しない単純な置換だと、本来正規化する必要のない語まで置き換えかねないので
形態素解析でやる方がいいと思います 形態素解析では出来ない
それは解析結果を使ってるだけ。形態素解析でやってるわけではない。 いや解析結果を使うには形態素解析が必要ですよね?
ようは形態素解析ライブラリがあれば万事解決なんですよ
しょうもない詭弁はいらないんです はやく形態素解析ライブラリだしてくださいよ
期限は今週中なんですよ >>477
いやなりすましはやめて下さい
>>478
出来ますよ
アホなんですか? Web Assemblyが主流になればjavascript終わるの・・? 形態素解析には辞書が不可欠だけどブラウザ稼動で辞書読み込ませるん? >>479
出来ないよ。
新幹線で大阪まで行って道頓堀に飛び込むことは出来るけど、
新幹線で道頓堀に飛び込むことはできないよ。
日本語を勉強しよう。
質問は相手に伝わらないと意味がないよ。 wasmって要するにこれだよな
何やってるプログラムなのか読むのがものすごくめんどいjavascript 自分も形態素解析興味あるので横からだが
まとめると、例えば下のような文章があったとすると
【文章】
「私の名前は学(まなぶ)です。」
「私は歴史を学ぶ。」
【辞書ライブラリ】
学 - 学ぶ - 学んだ
【やりたいこと】
人名の 「学」 を 「學」 に置換したい
それ以外の 「学」 は置換したくない
ので、形態素解析にまず通して、人名だけ抽出
辞書ライブラリに通して、人名の「学」だけを抽出
みたいなこと?(あくまで一例だが) 例えば簡単な暗号化を返したいとき
(1)入力された文字列
(2)文字列をリバース、md5に通してリバース、さらにmd5
(3)前から10文字だけ返す
みたいなことをしたかったら
javascriptの生ソースで置いて読み込んでたらバレバレなのは当たり前だけど
バラしたくなければ、例えばサーバーサイド言語で(2)(3)の部分だけを
サーバに置いてコールバックで受け取る、みたいなのが今までの手法?
でもwasmだと(2)(3)の部分がコンパイル済みなので
ハッキング以外にはバレない、みたいなことが可能なのでしょうか・・?
そうであればウェブ言語だけでシリアルナンバーとか生成できそうで便利だと思ったのですが 逆汗されたら無力だけど気軽には見られないよね
程度の認識がいいと思う なるほど・・
おそらく逆汗封じというか、極力わかりにくくするような技もあるんでしょうね ないよ。まったく無駄。そういうことのために用意された訳じゃない。 >ウェブ言語だけでシリアルナンバーとか生成できそうで便利だ
この結論部分が何言ってんのか全く理解できない >>490
(仮に)逆汗無しという前提であれば
(1)シリアルキー発行するwasm
(2)(1)のシリアルキーを認識できる圧縮解凍フォーマットwasm
を用意すれば
ウェブ系の言語だけでとか、オフラインでもとか、ブラウザのみでとか
それぞれ(サインアップなど必要とせず)プロテクト付きのコンテンツをやり取りできそうで便利、
という意味
でもアンチ逆アセンブラは無理そうなのでタラレバですね バカか。そんな前提無意味。winやmacのネイティブアプリがシリアルキー発行してるか?
常識で考えろバカ。
クラッカーに「いや逆アセンブル無しでお願いします」言ってまわんのかバカが。 md5で?md5で?
「シリアルキー発行」をwasmすなわちクライアント側がやってどうすんの?
圧縮ないし暗号化されたものを、伸張ないし復号化された後のものをどうこうされたら無駄では? 通信量やロード時のコストは変わるかもしれないけど実際の処理速度は変わらんのだろ
当たり前だけど
じゃあ他に何が良いかって、javascript以外の記述が使えることを除けばあとは
難読化よりももう少しバレにくい、以外無いじゃん
バレたくないどんな処理をさせるつもりだよ
どんな処理させられてるかわからないコードなんて受け入れたくないわ ウェブ言語というものからしてもう誤解してそう
知ったか系SE バレにくくするために用意された仕組みではありません。
お前のような泡沫ザコプログラマ以外にとっては、コンピューターで現実時間で解析的に解ける難読化は無いのと一緒です。 >>492
>クラッカーに「いや逆アセンブル無しで
仮に、逆汗無し=逆汗ができないとすると
という意味です・・・
できてしまうというのはなんとなく流れでわかりました
なので 仮に です
>>493
md5どうのこうの例は単に説明のために簡単な例をあげただけなので・・・
(適当にmd5を選んだだけです)
例えば、とか、みたいな、って結構強調したつもりなんですけどねぇ・・・
>復号化された後のものをどうこうされたら無駄では?
もちろん復号化されたデータが拡散されたら終わりですし
シリアルキーが流出したら終わりです
(どんなコンテンツかにもよりますが)
>>496
はい、>>489もみましたしそのタイミングで>>490のレスが来たので
答えるとすれば>>486時点での認識で「仮の」話をしなきゃいけなかったのです
なのでそれ以降、例えばとか仮にとかクドいかなと思いつつ書きまくったんです
でもこのありさまなんですよねぇ・・・
「例えばもしも」から話してるのに
投げ返された会話のボールが妙にズレている気がしてなりません・・・ 意味の無いしょうもない仮定に付き合う必要はない。
「もし朝起きたときチンコが松茸になっていたとして〜」
このあとは聞く必要はない。そういうこと。 簡単な例が云々とか説明のため云々はいいから
md5で何をどうやって? クライアントサイドでシリアルナンバー発行とお考えになった理由はノータッチなんですか なーにが会話のボールだ
ボールにウンコ付けて投げといて相手がキャッチしないとブー垂れるバカかww
取るわけねーだろバーカwwww 「解析されにくい」が前提にあればできることなら
例えばflashなどで実現されてたはずの手法ってことにならんかね
あれわりとブラックボックスだろ >>499
>>486は入力された文字列をトリップみたいなもので返してほしいな、
程度の話で、>>486の最後の行と>>491のシリアルキーのくだりはmd5云々とは別の話です
シリアルのくだりを強いて言うなら例えば、
(1)シリアルキーを発行するwasm
例)「3284443」や「7138751」という素数シリアルキーを発行する
(2)シリアルキーを解読できる圧縮解凍フォーマットwasm
例)「3284443」や「7138751」を素数判定して解凍
みたいな感じです
仮に、素数も(1)(2)のソースコードもバレなければ、復号化が難しい
みたいな感じです
ただし、シリアルコードが流出することや復号化されたデータが流出することには対応できません
みたいな感じです
さすがにくどいと思いますが、もちろんシリアルキーが素数というのはあくまで例なので
そのままの意味で受け取らないでくださいね
もっと良い例があると思うので脳内変換してください
あとこのレスは>>498の通りです 訂正
>仮に、素数も(1)(2)のソースコードもバレなければ
仮に、みんな素数も知らず、1)(2)のソースコードもバレなければ
でした https://blog.mbaas.nifcloud.com/entry/2018/01/31/104952
ちなみにこの記事
>WebAssemblyとは?
>バイナリ、つまりコンパイルされていますのでソースコードが読まれることはありません。
てあるけど >>505
見事に「ウェブ言語だけでシリアルナンバーとか生成」が意味不明なままなんだが
コンテンツに対するプロテクトのくだりだけ拾っても
>シリアルキーを認識できる
>シリアルキーを解読できる
ってどんな処理を想定してんの
暗号化分野に関わらないほうがいいと思う 「ソースコードが」読まれないからなんだっつーんだよ はじめから最後まで処理フローを書き起こしてみると問題点がわかるようになると思うよ
書く能力があるならね >>509
>ってどんな処理を想定してんの
一言でいうと、コンテンツのプロテクトです
まず、>>505の(1).wasmと(2).wasmをみんながインストール?する
(例えばchromeの拡張でもアプリでもなんでもいいので読み込む)
Aさんがコンテンツをアップロード(アップロード先の指定なし)
その際、(2).wasmで圧縮(や暗号化など) → 暗号化されたコンテンツA
(コンテンツAは公開されており、不特定多数がコンテンツAをダウンロードできる状態(*1)。
が、内容の閲覧はシリアルキーがないので、できない)
BさんがAさんのコンテンツを購入
→(1).wasmによりシリアルキーが発行される
→コンテンツAをダウンロード
→(2).wasmに従い、コンテンツAを復号化
これが可能ならば従来のデータサーバと決済プラットフォームの集中型BtoCではなく
(1).wasmと(2).wasmと購入→発行.wasmを配布するコストだけなので、
決済もデータサーバも場所にこだわらないCtoCが可能なのではと思いました
(もちろんBtoCかつ、データだけ別というのもあり)
もちろんこのままだとコンテンツA以外のどのコンテンツ(BCDE、、、)も同じシリアルキーで閲覧できてしまうので
今はパス付きzipみたいなものとの差別化、程度です
もっと深い解決策は賢い人に任せます
(*1)コンテンツ自体は暗号化せず、シリアルキーをログインに必要なデータにしてもよい あと、購入→(1).wasmではなく、購入→認証→(1).wasmです >>512-513
他人の企画にタダで添削してあげる趣味はないんだけど
あえて言うと
原則的にファイルとしての取得をさせずブラウザ上でのみ閲覧/使用等が可能、
・・・と出来なければ、絵に描いた腐った餅では
それをなんとかできないのであれば
「.wasm・シリアルキー・暗号化済み製品コンテンツ、以上3つが揃わないとコンテンツを復号化できない」
という仕組みにする意義がない
既存の方法の改悪に過ぎなくなり、>>512の5段目などは根拠に欠ける論理飛躍となる
あと、そんな仕組み想定だとて「ウェブ言語だけでシリアルナンバーとか生成」「シリアルキーを解読できる」は意味不明のまま
説明スキルの欠如なども鑑みると、正直いって企画・設計に携わらないほうが良いと言っておきたい > >>512の5段目などは根拠に欠ける論理飛躍となる
あれ・・?そうですかね
例えばBtoCサービスによるCtoCの補助サービスな感じで
.wasmの生成や配布が企業により保証されていれば、ハードルが低いというか
「うちのサービス使うならこのアプリ使ってね」や
「こちらからユーザに紐付いたコンテンツ別の.wasmを生成してね」
なんかは自然な流れだと思いますね
完全CtoCかつ個人で決済もシリアル発行も、は利用者のリテラシ上ハードルは高そうです
ですが、上にも書いたよう.wasm生成・配布サービスが保証されていれば
インストールする前に、企業連携でハッシュ値の確認をすればいいだけのような
>ウェブ言語だけでシリアルナンバーとか生成
そもそも始まりの、自分の認識が
「WebAssemblyのソースコードって読めちゃうの?」
「逆汗で中で何やってるか丸わかりなの?」
みたいなところから来てるのでとくに深い意味もなく
説明としては>>491ですね
要は、webassembly使えばお手軽にシリアルキー発行できるか否か
程度の話です
>シリアルキーを解読
これはよくあるプロダクトキーの照会と捉えていいかもですね
ただ、キーを.wasmに投げた後の処理が照会→キーの解析→閲覧などあります
コンテンツ売買のくだりも、企画設計を想定しているというか
>ってどんな処理を想定してんの
という質問が来たので、例えばこういうのできたら面白そうだなと
即席で考えた感じです。もっと単純に言えば
「複数のIDが事前に登録されており、ランダムにechoするだけの.wasm」
これが実行される前に
・バイナリデータから全登録IDを取得できるのだろうか?
・逆アセで全登録IDはバレバレ(丸見え)なのだろうか
というが知りたかっただけです 単純な話、
ウェブ上でみんな同じファイル(.wasm)を読み込んでいるのに
キー発行のアルゴリズムがバレずに独自キーを発行できる
って何かすごい気がする
と思っただけというか 今の心境を語るなら、仕様バグに突っ込みを入れたときの、担当者の言い分を聞いている感覚に似ている >>484
そうです
自分がやりたいのは英語の置換なので、
英語の活用形と何の繋がりもないのに綴りが同じ名詞がないこともないだろうと。
あと単純に、形態素解析なら、原形に置換するための辞書を用意する必要がないというのもあります
一度で、二度おいしい ということで今週中にお願いします
納期が迫ってるんです while( !answer ){
you.hair.fallOut();
if( xday < (new Date()).now() ) you.die();
} >>520
だからやりすますのやめて下さい
納期なんてないです 確かにWASMにすればソースコードはわからないけど、
バレたくないのって特許的なアルゴリズムだったり、計算に纏わる各種数値でしょ
そのくらいであれば簡単に解析できるよ
バイナリとは言えasm.jsを圧縮したようなもんだから、アセンブリとは違って逆コンパイルも単純だし
その状態でも確かにメモリアクセスを理解するのはやや煩雑だがロジックは簡単に読める WASM側(jsの方がわかりやすいので)
var atari={
'Z3845fHc':'アマギフコード1',
'83F8y838':'アマギフコード2',
・
・
・
];
JavaScript側
//WASM読み込み&ためのコード
console.log( instance.exports.atari[id] );
//WASM(ry
例えばこういうのでもWASMのバイナリコードを読み込んだ時点で
事前にアマギフコードが全部バレちゃうってこと? WebAssembly Studioみる限りそのままコードをバイナリにしてるぽいので
>>525の変換後も普通に突っ込めばできそうなんだが今ちょっと試せない この長文の人って>>502と同一?
構ってもらえる訳ないだろ そのままコードを置き換えてるという点では
既存のミニマライザ程度の難読化効果はあるだろうがそこまでだからな
その状態でも通信すれば内容は抜けるし
どんなに難読化しようと最終的にCanvasに書き出せばそれは簡単に取得できる
そしてでっかいABをメモリに見立てて使うと言う点では
その1つのABさえ監視しておけば全ての重要なデータがそこに含まれてるのだから
ネイティブのゲームなんかのハックでCheat Engine使ってプロセスメモリ解析するようにABを解析するようにすれば、
むしろミニマイズされたコードの流れをデバッガで必死に追いかけていくよりもチートが容易いかもしれない
既存のチート対策のようにメモリ管理を丸ごと自前で構築して
頻繁に割当を移動させるだとか、値をXORしたりする方法はあるかもしれない
でもWASMの問題は逆コンパイルが容易でそういうコードもバレやすいし、ランタイムの改ざんも非常にしやすい つまりjavascriptの難読化するやつは悪人ってことですね さらにもうちょい具体的に知りたいです
例えば
https://webassembly.studio/?f=adur0vruy59
(上タグのBuildでmain.wasm化できます)
入力値をnとすれば
instance.exports.main(n);
1を入力したら120
3を入力したら360
10を入力したら1200
という具合に、単にnに120掛けているだけ
というのは予測できるが、
nに 2*3*4*5 を掛けているのか、60*2 を掛けているのかetc
かどうかは、Build後のmain.wasmからは読み取れない
という認識で合っていますでしょうか? >>532
コンパイル最適化で定数の120にされるのでそれはわからない
わからないと言うか実際はただ120をかけてるだけ
でもそこが分かっても分からなくても大したこと無いだろうよ 今ふと思ったのですが、power shell で.jsファイルを実行することって
可能なんですかね....
ちょっとやってみたら、もちろんprintはできませんでした .pyならpythonコマンドを、.jsならnodeコマンドを呼べば出来るだろ。シェルをなんだと思ってるんだ。
すぐ制御戻ってくるのが嫌ならStart-Process -Wait使え >>535
>コンパイル最適化
なるほど ありがとうございました 変換テーブルだけ使わせてもらうのもアリかと思い>>539のソースを見てみたのですが、
どういう基準が選ばれたのか分からない、不思議な連語が結構含まれていて、謎みがあります
おそらく、元になったライブラリから流用されたものだと思いますが。
それでふと思ったのですが、語を一つ一つ英和辞典で引くことでも、変換テーブルは作成可能ですよね?
英和辞典なら、複数形で引けば単数形が出るし、過去形で引けば現在形が出るはずです
コマンドラインで引ける(プログラムから引きやすい)英和辞典はないものでしょうか? そんなどこの馬の骨とも分からんような未メンテ放置のライブラリよりnaturalのstemmer使えよ。
https://github.com/NaturalNode/natural >>541
「JavaScript 英語 動詞 原形」とかで検索したら最初に出てくるページですが?
>>542
ありがとうございます
語幹だけを取り出すプログラムはstemmerっていうんですね
そういうキーワードになる術語も知らなかったので助かります IPFSで簡単なサイト作ってみようとして疑問に思ったことがあります
ajaxでよくある、クロスドメインの問題です
IPFSにjsファイルをアップロードして読み込む場合、
これはブラウザ側で許可する以外に方法はないのでしょうか? ajaxでよくある、クロスドメインの問題です
ぐぐりましょう node.jsのnaturalっていうのは、自然言語関係の一般的なアルゴリズムを集めたもので
辞書は含まれていないようですね
すべてをアルゴリズム的に処理するので、不規則動詞を原形にしたりは出来ないようです
WordNetにアクセスするモジュールもあったので期待したのですが
WordNeは意味を中心に語を体系づけたものなので、語の外形についての情報はないっぽいです・・ いえいえ、キーワードを知れただけでも助かりました、ありがとうございます
WordNetというキーワードからPDICという辞書ソフトを見つけて
それ用の辞書はCSVとして出力可能なので、データソースとして使えるかも?というあたりまできました というかwebapiに丸投げとかしちゃいけないの? どうせならTensorFlow.jsでモデル作ろうぜ >>551
不規則動詞を原形にするのにニューラルネット使うなんてミスマッチ過ぎるw
はやりに踊らされるディープバカ。 ニューラルネットってWebと相性が良いと思う
データの量にかかわらず指定したサイズと計算負荷のモデルを作ることができるし
それを蒸留してモバイル向けにサイズと計算負荷が1/5のものを用意するとかも簡単にできる JavaScriptの正規表現でgスイッチを使うと
グループ化が機能しないことに気づきました
console.log("0123ABCD".match(/\d+(\w)/));
=>["0123A", "A"]
console.log("0123ABCD".match(/\d+(\w)/g));
=>["0123A"]
gスイッチもグループ化、どちらもが配列で返すので、
機能的にバッティングしているのが理由かと思いますが
そこは配列の配列を返せばいいだけのような?
違いますか? >>555
console.log("0123AB456CD".match(/\d+(\w)/g));
=>["0123A", "456C"] >>555
str = "11A22B33C"
reg = /\d+(\w)/g
ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
// [["11A", "A"], ["22B", "B"], ["33C", "C"]] 言う前に先越されたかw
>>558
そんな、RegExpの挙動をちゃんと知らないと理解できないような
読み解くのに時間がかかるようなコードかかないで
分かりやすくかけよ。だから>>559みたいなレスが来る
ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
// ...Array 大好き人間かよ。 新しい技を手に入れたらそればっかり使いたくなる癖は直したほうが良いぞ
ary = str.match(reg).map(_=>reg.exec(str));
// 短いがこれも分かりづらい。_を捨てて何故動くんだよ?ってなる
reg1 = /\d+\w/g
reg2 =/\d+(\w)/
ary = str.match(reg1).map(i=>reg2.exec(i));
// 推奨。わざわざ変数に入れなくてもよいが > // 推奨。わざわざ変数に入れなくてもよいが
変数に入れなくて良いのは正規表現ね
ary = str.match(/\d+\w/g).map(i=>/\d+(\w)/.exec(i));
ということ >>555
var arr = "11ABC22BCD33CDEF".split(/(\d+(\w))/);
// arr.shift();arr.pop();
console.log(arr); Ruby なら、
str = "11A22B33C"
reg = /\d+(\w)/
str.scan(reg).to_a
#=> [["A"], ["B"], ["C"]] >>563
数字消えとるやんw まあ残せとか書いてないけどさ うーん、でも普通(?)にwhile使えば正規表現処理は1回ですむんだよな
これもう少しうまくかけないかな
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = [];
while (a = reg.exec(str)) {
ary.push(a);
}
console.log(ary); え?>>560の無駄って?
言えないなら黙ってろよw >>566
IDちゃんと見ろよ。
>>565と>>560は同一人物だ >>555
var arr = "11ABC22BCD33CDEF".split(/(\d+(\w))/).filter((_,i)=>(i%3!==0));
console.log(arr);
//=>["11A", "A", "22B", "B", "33C", "C"] >>568
同一人物だからいってる
正規表現処理の回数を気にしてるぐらいだし、伝わると思うが RegExp.exec()がコールバック関数を受け取れば良いのかなー
第二引数に関数が渡されていればmapのような挙動をするとかいう仕様なら
互換性保ちながら拡張できそうだと思った
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = reg.exec(str, a => a)
console.log(ary);
>>570
正規表現の処理的には無駄が多いってわかってるから>>565を書いたんだけど?
そんな俺が言ったことを復唱するようなレスされてもなーw
>>560の本質は、無駄かどうかじゃなくて、分かりやすくかけよって話だから >>571
知らんがな
そう思うなら、>>560で推奨なんて書くなよ
>559に絡めて、代弁者にでもなったつもりか >>559
> なぜ2回、matchするんだ?
matchは二回してないぞw
> ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
このクソ分かりづらいコードが、クソ分かりづらいことを
証明するために説明してあげる。こんな説明が必要だからクソってことね
ボコボコにするから>>558は泣くなよ?w
まず [...Array(str.match(reg).length)] と map(_=>reg.exec(str)) に分ける
前半の部分 の [...Array(str.match(reg).length)] は実は str.match(reg) でよい
Array(・・・.length) は、「正規表現でマッチした配列」のlengthだけを使い
「正規表現でマッチした配列」と同じサイズの「空の配列」を作るという意味
普通はこんなことせずに、空の配列に変換せずにそのまま正規表現でマッチした配列を使えばよい
そして、[...空の配列] は 空の配列をカンマ区切りの引数にして配列に戻している
つまり[ary[0], ary[1], ary[2],・・・] と同じ。配列を展開して配列に戻す無意味な処理ってこと
知ったばかりの [...Array]という技を使いたがってるだけというのはこういうこと
はい、前半部分で2つ意味不明な処理が入ってましたw 結局前半部分は、なんのために存在するかと言うと、後半部分を正規表現でマッチした数だけ繰り返すため
match において reg = /\d+(\w)/g のキャプチャ部分は意味を持たないようだ。
reg = /\d+\w/g と一緒。ついでに後半部分の exec では今度は/gが意味を持たないようだ
つまり前半部分は、 /\d+\w/g という意味で使い、 後半部分は /\d+(\w)/ という意味で使っている
このような、無視されることで書いたものとは違う解釈がされることを前提にしている。これも分かりづらい点の一つ
で、後半部分は、結局 reg.exec(str) を配列でマッチした数だけ繰り返すという意味でしか無い
だから _ は不要。regオブジェクトは状態を持っていて、
reg.exec(str) 1回目・・・["11A", "A"]
reg.exec(str) 2回目・・・["22B", "B"]
reg.exec(str) 3回目・・・["33C", "C"]
というふうに異なった値を返す。
このよう挙動はregオブジェクトのexecメソッドは起きる。
先のmatchメソッドは、strのメソッドであることに注意 >>572
関数型風のコードの書き方としては>>560 推奨で問題ない
>>565は手続き型風のコード。だからコードが長くなってしまっている。
根本的な解決方法は>571なのだろう 「手続き型だからコードが長くなる」
待遇を取って、
「コードが短ければ手続き型ではない(≒関数型である)」
これはそうとは限らない(アセンブラなど)、つまり偽だから命題は否定された。 原因はjavascriptのregexpがクソということでok? もともと関数型言語じゃないからな。
最近のトレンドが入ってきてJavaScriptでも
mapとかreduceとか使えるようになったけど、
それすらも昔は無かった関数 >>558
どうせならこうしようぜ
str = "11A22B33C"
reg = /\d+(\w)/g
ary = str.match(reg).map(_=>reg.exec(str))
// [["11A", "A"], ["22B", "B"], ["33C", "C"]]
圧 倒 的 ス マ ー ト 関数型言語じゃないけど、長い間メインストリーム言語の中で唯一関数型言語である条件のひとつ、関数が第一級オブジェクトである、を満たしている言語だった(過去形) >>560に書いてあるやん
> ary = str.match(reg1).map(i=>reg2.exec(i)); >>581
そっちはそっちで正規表現オブジェクト2つ使ってて無駄というか
直球回答じゃないそもそも論的なやつじゃん while > 正規表現2回のうち片方省コスト化 > 正規表現2回
ってだけのことだろ
そもそも論の直球回答としては>>577で完全終了してしまう >>582
だから論点は無駄かどうかじゃなくてわかりやすいかどうかだって
メソッドによって違うように解釈されるような使い方したらいかんよ
知らない人が見たらmatchでキャプチャされた文字部分を繰り返すとか読めてしまうだろ >>560
i=>reg2.exec(i)のiって何の略なのかおしえてください 要素、要素のインデックス、回してる配列の順なのに要素の名前にiを使うというセンスの無さが光る。
jQueryのと混乱してるのだろうか? コンストラクタに入れ子にしたメソッドを示すにはどのようにすれば良いですか?
どうやらthis.はコンストラクタを示してしまい、メソッド自身を示せない様です >>588
iと同じくjもよく使われてますがこのjはなんですか? >>586
残念
イテレーター(iterator)だね ここまで matchAll 無し
[..."11A22B33C".matchAll(/\d+(\w)/g)]
// [["11A", "A"], ["22B", "B"], ["33C", "C"]] phpではphp4の時代からpreg_match_allが使えたのにね matchAllって何なのかと思ったらまだStage3か
でももう一つステージが上がったら以後はこれのポリフィルを使うでFAだな また読み込むJavaScriptファイルが増えるのか JavaScriptをはじめて触ろうとしている初心者で右も左もわからず途方に暮れております。
どうかググり方のヒントだけでもよろしくお願いします。
【環境】 windows7 / firefox62
【条件】 ページ内に特定の文字列が存在する場合にimacrosを起動させたい
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14140898114
【何をしたいのか】ページ内に「陽性反応」の文字列が存在する場合に、「iimPlay("#Current1");」というコマンドでimacrosを起動させたい
【期待する結果】・ページ内に「陽性反応」の文字列が存在する場合に<input type="button">を押して次のページへ進む
・ページ内に「陽性反応」の文字列が存在しない場合には「何もしない」 >>589 こういうことではなく?
class Hoge {
constructor(){
this._fuga1 = function(){ console.log('_fuga1') };
}
fuga(){ console.log('fuga') }
}
hoge=new Hoge();
hoge.fuga(); // fuga
hoge._fuga1(); // _fuga1 香取慎吾主演ドラマ
2010年だよ
おっさんじゃねーよ
みてねーけどな >>599
コードを作ってくださいなのか
自分でやりたいので出来るための道筋たててくださいなのか
どっち?
基礎からやればすぐ出来るレベルの話なんだけど >>599
お箸を持つ方が左で、お茶碗を持つ方も左です。 お箸を持つほうが右で
コップを持つほうが左
ナイフは右で、フォークは左
スプーンは状況に応じて右だったり左だったり >>608
イタリア人は(スプーン使わず)フォーク1本でスパゲッティ食うが、その時はほとんどの人が普通に右で持ってたはず。 鉛筆は右で、消しゴムは左
電卓は左で、テンキーは右 >【何をしたいのか】ページ内に「陽性反応」の文字列が存在する場合に、
>「iimPlay("#Current1");」というコマンドでimacrosを起動させたい
ページ内という表現があいまい。
F12 開発者ツールを起動して、XPath, CSS セレクターで、どの要素か特定する
<div id="abc">陽性反応あり</div>
id は、# で指定できるから、jQuery なら、#abc
jQuery のCSS セレクターを勉強すれば? var resAry = [];
function replacer(match, p1) { resAry.push(p1); };
var oldStr = "11A22B33C";
var reg = /\d+(\w)/g;
// 第2引数は、コールバック関数
oldStr.replace(reg, replacer);
console.log(resAry); // ["A", "B", "C"] 数値の後に続く英字だけが欲しいならこう書けるよ
"111A222B333C".match(/(?<=\d+)[A-z]/g); // ["A", "B", "C"] とりあえず、それだとちょっとだけ記号が引っかかっちゃったりしないか
[a-zA-Z]ではなく[A-z]だとASCII表的に [ ] \ とかが 元の\d+(\w)も「123」とかにもマッチしちゃうし細かいことはいいんじゃない?
実際は条件が限定されてるだろうしそれに合うように適当に書けばいいと思うよ そうそう。細かい仕様は言ってないので、
そこを変えてあれこれいっても意味ない
ただ出されたコードに明らかに無意味なことをしてる
分かりづらいコードがあったから
それを指摘しただけ(>>573-574) javascriptで後読み言明って使えるん?
手元のfirefoxとchromeでは使えなかった 先にある文字があるかどうかなのになぜ先読みではなく後読みになるの?おかしくない? あいう
いの前にあがあるよね。そして
いの後にうがある。おかしい! >>628
(?<=\d+)
なら数値の後ろの位置にマッチする
後ろを見る→lookbehind→後読み
「後読み」ではなく「後ろ見」と覚えると良い lookbehindそのままが一番勘違いしないわこれで覚えます str="りんご03の値段は、100円です。";
100円の数値部分だけreplaceするとき、
円まで上書きせずに正規表現するにはどうしたらよいのでしょうか?
(?<=...)この表記の直後版みたいな感じです
\d+(?<=円)とかやってみましたがうまくいきません str.replace(/\d+(?=円)/,'20')
//"りんご03の値段は、20円です。" もしくはこう
str.replace(/\d+(円)/,'20$1')
//"りんご03の値段は、20円です。" そうです! >>634を>>633みたいにしたかったんです!
ありがとうございます すっきりしました var oldStr = "りんご03の値段は、100円です。";
var reg = /(\d+)円/;
// 第2引数は、コールバック関数
var newStr = oldStr.replace(reg, "50円");
console.log(newStr); // りんご03の値段は、50円です。 そこまでするなら、そもそもりんごの値段変更のためのプログラムだから
古い値段の広告
新しい値段の広告=古い値段の広告.置換(値段変更のためのルール,"50")
console.log(新しい値段の広告)
とかの方がわかりやすくない?
具体的な変数名はまったく思いつかないけど 連続してajaxで画面内用かえたいんだけど2回目以降どうしたらいいの?
<div id="ajax">
<script>
var onsubmit = () => {
var xhr = new XMLHttpRequest();
// data
xhr.send(dta);
xhr.onreadystatechange = () => {
if( xhr.status == 200 ) {
getElementById("#ajax").innerHTML=xhr.responseText;
}
}
return false;
}
</script>
<form onsubmit="onsubmit()">
//入力
</form>
</div>
みたいな内容を毎回サーバーから返しても
formの部分は変化するけどJSの部分は認識されない
JSの内容も動的にかえるって無理なのかな
必要な処理は最初に全部定義しておかないとダメなのかな .innerHTML=xhr.responseTextのところで、<script>うんたら</script>みたいなのも返ってきて実行したいってこと? hoverとマウスオーバーは同じ意味と考えていいですか? >>638
> JSの内容も動的にかえるって無理なのかな
無理ではないが、良くないやり方。
JSの内容は静的に最初にページを表示させた時に
すべて読み込んでおく どうしても動的にスクリプトを読み込みたければ
一番マシなのはimport()メタ関数を使うことだな >>642の質問に答えられる人はここにはいないのでしょうか? hoverは擬似クラスだからマウスが継続して乗っかり中であるという状態区分を表しているが
mouseoverはマウスが乗ったという瞬間のイベントという違いがある >>647
なるほど
分かりやすい説明ありがとうございました >>638
JavaScript にあるかどうか知らないけど、他の言語では、
eval でソースコード文字列を、そのまま実行できる
ただし、他人の文字列を実行するのは、危険! >>638
そもそも、ajax は、jQuery を使ってよ
素のJavaScript は、可読性が低い >素のJavaScript は、可読性が低い
jQuery慣れしてるだけ
他言語から初めてJavaScriptきた人間ならそうは思わない jQuery覚えるの面倒くさい
本職はバックエンドだし
あまり色々覚えるの嫌なんだわ jQueryは害悪でしかない
百害あって一利なし
触れない方がいい jQueryは多言語から来た人には分かりにくいんだろうね
ウェブのフロントバッチリやって来た人なら有用性は自明なんだけども
俺は教育的配慮から他言語から来た人にはjQuery使わないと死ぬような案件をワザと降っている
そうでないと覚えてくれないからね $.ajax(selector).on('click', req).done().fail().always()
何このマヌケなコード
if elif else関係をif if ifでやってんのか 要素数が10万のハッシュをJavaScriptに持たせても、
性能的に問題ないでしょうか?
(通信速度は別として) >jq使わないと死ぬ案件
それ「ゼロから設計し直して書き直したほうが早い」案件では $.ajax(selector).on('click', req).done().fail().always()
何このマヌケなコード
if elif else関係をif if ifでやってんのか
形を変えてelse使うヴァカ
何も考えてない屑の証拠 >>662
jQuery使わないと死ぬような案件って、超絶しょっぼい案件ってことなの? >>644,645,649
基本的にはできないんですね
bookmarkletみたいにクリック先のJSを毎回実行するみたいなイメージ想像してたけど…
ありがとうございました
>>650
jQueryって何ができるんですか?
ちょっと前は jQuery じゃないとできないことがおおかったけど
今 pure JS でもわりといろいろサポートされてて
書き方が違うだけでできることほとんどかわらなくなったから覚えなくていいっていわれたんですけど どんな案件でも設計は重要
似非PGには理解できないだろうが 荒らしてる奴、マー版から出てくるな
>>282
>ヴァカに混じってJSをやる事になったのだが
>Angularのドキュメント書いた奴氏ねよ
>
>私大文系が格好付けてワザと分かりにくく書いてるだろ
>何言ってるのかさっぱりだわ
>
>ヴァカに文章かかせるなよ
Angularの説明文も理解できない低知能が何言ってるのか。 司法試験に一発且つ首席で合格するのと10歳でフィールズ賞を受賞するのはどっちの方が凄いですか? プログラマー版にはライブラリーをライプラリーと書いたヴァカもいたよな プログラマー版はaccessだのvbだの屑の巣窟
アホだらけだよ 平均的な囲碁棋士と平均的なプリンストン大生はどっちの方が賢いですか? こちらはJS如きで労力使いたくねーんだよ
jQuery覚えろ?
まっぴらごめんだわ jQueryは害悪でしかない
百害あって一利なし
触れない方がいい
触れるとヴァカになる >>659
>>jq使わないと死ぬ案件
>
>それ「ゼロから設計し直して書き直したほうが早い」案件では
普段何やってんの?
俺はreactだけど、jqは認めてるぞ
ゼロから設計ってなんだそりゃ? プログラムをちょっと齧っただけの知識でドヤ顔してるニートが多いから頓珍漢なレスばかりになる >>652
> jQuery覚えるの面倒くさい
覚えるの面倒くさい VS 長いコード書くの面倒くさい
俺は後者だな。自分で書いたらその分テストをしなきゃいかん >>681
> 俺はreactだけど、jqは認めてるぞ
jQuery覚えるの面倒くさいなら、
Reactも覚えるの面倒くさいってことだよ
自分でガシガシ書く面倒くささを取るってさ(笑) >>663
> $.ajax(selector).on('click', req).done().fail().always()
> 何このマヌケなコード
> if elif else関係をif if ifでやってんのか
ただのPromiseの書き方の親戚じゃん
promise.then().catch().finally()
これがわからないってことはjQueryがわからないんじゃなくて
JavaScriptも知らない。ただの初心者ってことだろ jqueryも使えない爺さんワロタw
ネット使えるなら初見でも余裕なのに >>665
jQuery のソースコードは、1万行!
無数のデバイスに対して、何十箇所もパッチを当てている。
これを人力でやるのは無理。
単純に、10個のデバイスに対応するだけでも、無理
もし、jQueryを使わなかったら、色々なデバイスで誤動作する そういうデバイスは動かないで自然淘汰されていけばいいと思うよ 全てのサイトを動かなくするのは不可能だろw
ほとんどのサイトは見れるのだから淘汰されない。
ただお前のサイトだけ見れないって判断されるだけ YouTubeぐらい影響力があるサイトなら
見れないから新しいのに買い替えとかあるかもしれんがね(笑) 売り上げ何百億のサイトだとシェア率1パーセントのブラウザー切っただけで数億円の損失なんだけど?
お前代わりに払ってくれるのか 一番簡単な考え方として、非モダンブラウザはJS無効組の扱いにすればいいだけだと思うけどな
1万行くらいのコード良く外様ライブラリ使わずに書くけど
Chrome向けだけで書いててFirefoxとか別のモダンブラウザでいきなり試しても
1箇所手を加えるくらいで完璧に問題なく動くよ
というかどういうところで非互換性が問題になるのかが良く分からない
モダンブラウザ間でDOMの基本的な操作のAPIに非互換性は無いはずだ
多分CSSやら色々適応したり見た目に凝ってるところなんだろうけど
自分はそういうところは躊躇なくCanvasを使ってる
Canvas APIの表示互換性はテキスト周りを除いて極めて高い
ただ粒度が大きいから、Houdiniが普及したらPaint APIとかでやりたいね >>694
サポートを切ったところでそのサイトにアクセスできなくなったり
画面が真っ黒になったりするわけではあるまい
大げさだよ
でも最近大手サイトがTLS1.0や1.1のサポートやめたじゃん
そういうのはJSのサポートなんかとは比べにならない
本当の意味で「切った」ってことだけど
お金第一ではなく悪いものを排除するってことは
ネット社会上大切な技術者の義務だよ 間を取れば良いんじゃない
プログレッシブエンハンスメントってやつ
JSが無効でも最低限見れるべきだし
老体のPCに乗ってる老体ブラウザに大きなライブラリ載せて
若者と同じリッチな体験をさせようというのにも無理があると思う
何でもポリフィルしたりライブラリで抽象化するのがよいとは思えない
それよりも段階的なサポートを提供すべき >>695
> 一番簡単な考え方として、非モダンブラウザはJS無効組の扱いにすればいいだけだと思うけどな
非モダンブラウザの判定が大変そうですな(笑) >>695
> というかどういうところで非互換性が問題になるのかが良く分からない
そりゃそうだろ。一見モダンブラウザに見えて問題なく動くように見えて
マイナーな例で問題があるのがバグなんだから。
想定外の挙動なんて、わかるわけないよ >>696
> でも最近大手サイトがTLS1.0や1.1のサポートやめたじゃん
そうだね。使われなくてって、切っても問題ないと判断してから
切らないといけないよね。
古いスマホを使っている人がいなくなってから切らないと大問題になる そもそもWebで想定内だなんておこがましい
お前さんのサイトはAppleWatchの今度のブラウザで見ても想定内な見え方
動作の仕方する自身があるのか
そしてそこで問題が出たとき、ライブラリに頼り切ってるお前さんは修正できるのか そこまで互換性に拘るのなら尚更jQueryは良くないと思うな
React Native for Webくらいのフレームワークを使うべきだと思う 何をどこまでサポートしてコストを払うかのサポートポリシーは各自で決めてよ
他人にどうこう言われるもんじゃ無い >>701
自信ないよ?だからjQueryとか使うんじゃん。 以前jQueryがFirefoxの何バージョンも前の不具合に対応してることを誇らしげに述べてるやつが居たが
じゃあお前はそれぞれのブラウザが6週間ごとに更新されてjQueryが対応したら
即座に全てのjQueryを最新版に差し替えてるのかと問いたいわ
CDNが更新されるのを待っていたら間に合わないぞ
自分で適当にパッチがあたったところで落として検証しないといけない
そこまでして初めて>>699「一見モダンブラウザに見えて問題なく動くように見えてマイナーな例で問題がある」
とやらにライブラリで対応できるということになる >>702
でもreact重いじゃん。jQueryよりも重いものを
使わないといけないの嫌だし
結局サポートブラウザ減るんだよね >>705
> じゃあお前はそれぞれのブラウザが6週間ごとに更新されてjQueryが対応したら
> 即座に全てのjQueryを最新版に差し替えてるのかと問いたいわ
いや、jQueryのバージョンが更新されない限り
差し替える必要ないでしょう?
6週間?jQueryは安定してるから(その安定性の高さも重要)
最新版のjQuery 3.3.1がリリースされてから半年たってるよ24週間な 結局の所彼にとってjQueryが対応した範囲がサポートすべき範囲で
彼にとってのサポートとはjQueryを導入することなんでしょ
本当にただそれだけ
ブラウザが六週間で更新され新しいデバイスだって無限に生まれてて
Webは安定していないのでそういう思考停止は良くないのではというようなことを言われてるのに
平気でjQueryは安定してるからと言う
安定してるのではなく付いてこられていないのに気づいてない 多分住んでる世界が違うんだろ
JQがなければ死ぬ案件とか言ってるし
実際そういう案件しか来ない過酷な環境で生きてるとそういう思考になるんだろ アンチjQueryの人って極論多くないか。
本気で言ってんの?
過酷な環境と言えば過酷だが、少なくとも業界の超大手で人から笑われるような会社じゃないつもりだ。 大手ほどヴァカが多いんだよ。
私大文系でプログラム書けない奴がPMやら何やら名乗って高い給与とって、手を動かす現場の人間はみな腐っているのさ。
ジャップランドのITはみんなそう。
大手=無能。学歴主義のヴァカの集団。 >>709
ふーん。あなたは普段どんな仕事やってんの? >>708
> 結局の所彼にとってjQueryが対応した範囲がサポートすべき範囲で
それ以上対応したければ、その部分だけ対応するコードを書けばいいだけでは?
> ブラウザが六週間で更新され新しいデバイスだって無限に生まれてて
> Webは安定していないのでそういう思考停止は良くないのではというようなことを言われてるのに
なんか勘違いしてないか? jQueryの差し替えの話だっただろ
新しいバージョンが出てないんだから、jQueryは差し替えなくていい。
そしてなに?お前、ブラウザが六週間で更新され新しいデバイスだって無限に生まれてるから、
それに対応するために、頑張ってるの?言ってることめちゃくちゃじゃない?
jQueryを差し替えるてるのか?と頑張ってることに驚く一方で
自分で新しいブラウザとデバイスに対応するのに頑張ることは普通なんだろ?
どうみてもお前のほうが頑張ってるんだが
> 即座に全てのjQueryを最新版に差し替えてるのかと問いたいわ
なんで、差し替えてるのかと問いたくなってんだ?
頑張ることが良いことなのか良くないことなのか、はっきりしろよw
行きあたりばったりで、いちゃもんつけるよやめなよ。 >>712
ただのニートに一票
jQuery使うなんて要件から間違ってて作り直しなんて言っちゃう君なんだから
まともに仕事なんてしてないだろうな >>658の件ですが
indexeddbを使ったら少なくとも全てオブジェクトに入れるよりはメモリの節約になるのでは?
と思いました
そうでしょうか? 結論から言うと、jQueryを使わなくても、
サポートを切ったはずの古いブラウザでも
動いちゃうかもしれないんだよね
いつまでも古いブラウザサポートするの?と言われても
動いちゃうものはしょうがない 「jQuery使うなんて、ゼロから設計し直して書き直したほうが早い案件」
これはWeb制作板の名言として後々まで残すべき。
凄いですよ! 難しくてよくわからない話になってきたけど
jQueryなら >> 638 の2回目以降 $(#ajax).html(...)
ってうごくの? jq便利じゃん
使えるものは使って如何に時間、労力を減らすかも能力の内でしょ
いろんな派閥あるし今までどんな教育者に当たってきたかにもよるから別にjq否定派がいることに驚かないけど
否定してる人の数倍使ってる人がいるから更新され続けてるのが現状なんじゃないか jquery使うなって言われてるのは
フレームワーク使った時に直接DOMをいじったら整合性が取れなくなるからで
jqueyで操作しようが直接DOMをいじろうが同じことなので
jqueryは本質的な問題じゃないですよね?
しょうもない話を延々続けてる人達は何なんですか?? https://w3techs.com/technologies/history_overview/javascript_library
https://w3techs.com/technologies/history_overview/javascript_library/all
2015年ごろに脱jQuery、古い、オワコン、有害などと一部で話題になったが
2018年7月のw3techsの統計によるとJavaScriptライブラリを使用しているサイトが
前年より0.9%増加し、97.1%になったことが判明した。
またウェブ全体のjQueryのシェアは前年から0.6%伸び73.3%となり
JavaScriptを使用してないサイトは0.1%へって24.4%となった。
jQueryに次いでBootstrapの17.7%、Modernizrの11.5%と続いている。
jQueryの代替になると噂される、Angularは0.4%、Reactは0.1%と
jQueryに大幅な差をつけられている状態である。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>724
> しょうもない話を延々続けてる人達は何なんですか??
流行りで何も考えずにjQueryディスってしまって後に引けなくなった人達 >>724
その通りだよね。
『SPAの時はDOMの直接操作やめましょう。つまりjQuery使うと便利に出来るようなヤツ』ということに過ぎないのに、何故かjQueryは害悪みたいに言い出してる。
ネイティヴのJSでもDOMの直接操作したらjQueryと同じ。
SPAのコンセプトを誤解してるだけじゃないのかなぁ。 angular理解出来ない人が
流行にのってjQuery否定だけをしてるんかな
偉そうなこと言うなら、ちゃんと勉強してから来いよ jQueryの役目はquerySelectorが入った時点で終わってる 旧環境を切らず旧環境のサポートは考えても
javascript:OFFにしているユーザは切るの?
セキュリティ等の理由でOFFにしている人は
新旧環境に関わらず一定数いるけど >>686
if elif elseとcatch finallyを一緒にする阿呆
.done().fail().always()のうちalwaysはfinallyに相当するからまあいいとしよう
というかそのツッコミしてくる阿呆は絶対いるだろうなと思った >>729
いや、jQueryの実行速度はquerySelectorが入ることで
さらに速くなったというべきだろ。パフォーマンスアップ。鬼に金棒
jQueryはセレクタエンジンが素晴らしいのではなくて、
セレクタに"処理を適用できること"が素晴らしいんだよ >>731
そもそも、ajaxのdone,fail,alwaysは
if elif else ではないというツッコミを使用か?
done,fail,always は
then,catch,finallyと同等
違うのは、if elif else >>729
俺も今ではNodeListで十分な印象だな でもこの先ExtensibleWebが進んでHoudiniとかバンバン使った
ブラウザを低レベルから仕切り直したフレームワークがでてくると
結局FlashやSilverlight使ってた時代と対して変わらなくなるのでは? ただしNodeListは罠があるので注意という落ちw
ブラウザによって使える書き方が違うから気をつけろ Array.fromっていつからサポートされてるんだっけ?
スマホとか大丈夫?
NodeListをどう使うのが多くのブラウザに
対応できるのかわからないよ NodeListのforEachって全部のブラウザで使えるんだっけ? これが一番安全なのでは?
Array.prototype.slice.call(document.querySelectorAll("a")).forEach( function(e){ console.log(e.href)}) NodeListは ES6の for of で回せるけどFirefoxでしか使えなかったんだっけ? 全てのa要素を赤にする書き方
$('a').css({color: 'red'})
VS
Array.prototype.slice.call(document.querySelectorAll("a")).forEach( function(e){ e.style.color = 'red'}) >>743
え? Androidスマホで動かなかった記憶があるけど? よくこの例みるけど全てのa要素を赤にするとか使いどころ無さすぎ
任意のタイミングでstyle変えたい要素に専用classつけとけばいいんじゃないの いつから動くようになったんだっけ?
確認するの面倒くさいな >>745
はい、どうぞ
$('a').addClass('hoge') >>735
Silverlight使ってた時代は俺には無かったわ >>747
サンドイッチが欲しいと言われてパン関係食品全部持ってくるやつ >>744
なぜAndroidが出てくるんだよ
@@iteratorを拡張したら? >>749
お前はサンドイッチだけで生きてるのか?
実際の開発ではもっといろいろ使うだろうって話だ >>751
> なぜAndroidが出てくるんだよ
Androidスマホにもテレビにもブラウザは搭載されてるんだよ。
NodeListにいろんな書き方が割るのがわかったが、
ちゃんと動くことを確認しないといけない。
そうしないとサポートできるのかどうかもわからないだろ 結局動かなくても構わないって思ってるやつが
NodeList使うんだろうな NodeListをそのまま使うから冗長になる
ラップすればいいだけ。
ラップして便利にしたものがjQueryだ >>753
forEachにもいえるけど、Arrayのそれを流用すれば、Polyfillを簡単に書けるじゃない それぞれのサポートポリシーが違うところで議論したって意味ないよ
自分はモダンブラウザの最新版と考えるよ、そこで動けば十分だよ ただ補助輪が欲しいってとき
もう一台自転車を買ってきてデッカイ車輪を付けるか
車輪部分だけ材料買ってきて作って付けるか
俺は後者の方を選ぶけどね 真面目な話IEを切り捨てるのなら最初からjQueryを導入する必要はない
モダンブラウザなら普通に書けばあってもちょっとの修正で済むのだから 今乗ってる自転車じゃ進めないときは自転車かついで徒歩でいけばいいじゃない理論 >>759
例えがおかしい。
自分で補助輪作るか、大手メーカーの補助輪使うかの違いでしょ? 障害者に優しくないサイトだっつって訴訟起こされた会社があったな >>760
> 真面目な話IEを切り捨てるのなら最初からjQueryを導入する必要はない
でもさ、jQuery使わないでも、IEを切り捨てることなんてできないんだよ。
JavaScript使って書いてもIEで動いちゃう
IEで動くのに一部動きませんって苦情くるよね?
どうせ切り捨てられないなら、動くほうが良いじゃない >>760
> モダンブラウザなら普通に書けばあってもちょっとの修正で済むのだから
ちょっとの修正で動く
VS
何も修正しないで動く
なら後者を取るなぁw 1箇所で使い始めると使うのを止めるのが面倒なのがjquery >>766
大丈夫。jQueryは、生JavaScriptとの互換性が高いから、
混ぜて使うことが簡単にできる。
そこがAngularやReactとの大きな違い。
だからjQueryをやめる必要がない。 >>766
jQuery便利すぎるもんな。
一回使うと便利すぎて
やめられない、とまらない 状態になってしまう。 >>762
どこかの有名なポリフィル使うという話ならそうだが
jQueryは補助輪レベルじゃないじゃん そろそろflash見直してもいいんじゃないかと思いかけたがappleがなあ >>764
それはIEを特別視し過ぎ
単なるシェアの問題ならもうちょっと待っててよ
その内消えるから Flashは別にオーサーリングツールとしては生き残ってるでしょ
出力がsfwなのかhtmlなのかが重要なわけで >>771
IE消えても古いスマホは消えないだろうからな。 jQueryとDOM APIは組み合わせて
使えるってところが強い
普段は便利なjQueryを使ったコードを書いて、
jQueryではできない所だけDOM APIを使う
そしてDOM APIとjQueryはシームレスにつなげることができる 上でTLSの話があったけどTLS1.1で接続掛けてくることよりもサポート切れてるIEを使ってる方が危険でしょ
そんでもう1年でサポート切れるwin7を除きサポートが続くIE11が乗ってるwindowsにはEdgeという素晴らしいものが乗ってるんだからさ
うちではIEからのアクセスは「microsoft-edge:」で飛ばしてEdgeを開かせるようにしてる
それが唯一のIEサポート どうでもいいがDOMってたまにDQNに見えるよな
俺だけじゃないよな >>777
すいません。今TLSの話はしてないんです。 え?古いJavaScriptは危険でしょ?
JavaScript使うの辞めてjQuery使わなきゃ! >>773
エンジンもエアバッグもライトもついてる補助輪だろ
無駄なんだよ
補助輪だけで良いのに ie11はまだいいよ
少なくともサポート外の環境をサポートする義理は無いってだけで いやIE11はEdgeに飛ばしたほうが良い
IE11をサポートするしないは超絶に違う >>782
補助輪って言ったから、あなた混乱しちゃったのかな?
あれはたとえであって補助輪は忘れましょう
ブラウザだってたくさん機能持ってるよね?
でもクッキーだけ使えればばいいんですってはならないよね?
少なくともウェブの世界では機能は多いほうが便利なんだよ。 IE11をサポートするしないは
生JavaScriptで書くと
超絶に仕事の量が違う
うーん、ならやっぱりjQueryを使ったほうが良いのでは? そうか。そもそもjQueryを使わないから、
古いブラウザ切って、NodeListが正しく動くコードはどれで
ポリフィルはいれなきゃいけないなーって話になってるのか >>788
そうだね。今話題になってる(そしてこれからも話題になる)
問題の元凶はjQueryを切り捨てようとするからだよ
jQueryを使っていれば問題はそもそも発生しない そこで第三の選択肢がでてくる。
IE11を切るがjQueryは使うという選択肢だ
これのメリットは名目上はIE11を切っているため
サポートする必要はないが、jQueryを使っているため
IE11を含めて多くの環境で、同じように動くことが保証される
その上仕事の量も減って開発コストも減るということだ
頭が固い人は、サポートを打ち切る = あえて動かなくすることだと考えるが
jQueryを使わなくても、JavaScriptは古いブラウザで動いてしまう。
そこで頭が固い人は、古いブラウザ動かなくするためにコストを支払うわけだ。
IE11をサポートしないが動いてしまうのは受け入れるという選択肢
それが一番いい方法だ 別に古いブラウザではJS動かさなきゃ良いんじゃない?
どうせJS切ってる環境でも動くようにするんだろうし
自分はもうtype="module"使ってnomoduleでChromeのDLリンク出してるよ >>793
テレビにchromeをインストールする方法を教えてほしい
インターネット対応のテレビなんだ そもそもおれたちってなんでprototype.jsからjQueryに推し変したんだっけ・・? >>757
代入文を1行書く程度のコードを「車輪の再発明」というならそうかもね jQueryで多くの環境で同じように動くというのが良く分からない
最近のブラウザではDOM操作のAPIに差はほぼ無く
ほかのWeb APIやCSSの差の方が大きいだろう >>796
お前の仕事は、代入文を一行書くだけで終わる仕事なのか?
ここでの少ないサンプルコードだけで判断するな。
仕事ではもっと多くのことをやる。
だからライブラリを使うんだよ >>797
> jQueryで多くの環境で同じように動くというのが良く分からない
最近のブラウザであってもバグがあって挙動が違うところがあるんだよ
そういうバグに対応している。 jQuery使ったほうがはやいの?
昔 Rails 使ってメモリバカ食いで高級鯖契約することになってひどいめにあったから
FWなしですむ単純な仕様はなるべくつかわないようにしてるけど
パフォーマンスメリットがあるなら今度から使うわ >>794
君の古い環境ではJSが働かない軽快なページが表示されるから安心するといいよ
どうしても入れたくばUSBデバッグを有効にして入れれば良いんじゃない
大抵UIに問題出たりするから運次第だけど >>800
パフォーマンスって測るの難しいけど
DOM操作はたいしたことないと言うか
色々なデバイスがアクセスするWebで
そこでギリギリの性能を追求するもんじゃない
やっぱ一番はネットワークかな
ServiceWorker入れてSPAにするのが一番手っ取り早いよ >>795
prototype.jsとjQueryでは後者のほうが洗練されており
セレクタが使えるのでHTML/CSSとの相性がよく
圧倒的にコードが短く書けるという違いがあった
prototype.jsの方が先にリリースされていたが純粋に
ライブラリ同士を比較すると最初からjQueryの方が優れていた
それでも先にリリースされていたprototype.jsはそれなりに使われていた
両者拮抗している中、jQueryの圧倒的普及を決定づけたのは、
prototype.jsがウェブの標準を壊してしまうという出来事
prototype.jsが提供する Array.prototype.reduce が
ウェブ標準で追加されたそれと互換性がないということ
この結果、ブラウザでは多くの実行環境が存在し、ユーザーが使う
実行環境(ブラウザ)を制限できないため、ブラウザの基本オブジェクトを
拡張してしまうと、予期せぬ問題が発生することが認知された
その結果prototype.jsからjQueryへ多くの人が流れた >>798
ライブラリ任せの人には分からないだろうけど、@@iteratorの拡張に長いコードは不要 >>802
> 確かそれ24週間だか前の話でしょ?
なんの話してるの?
24週間の間には新しいバグが見つかってないから
jQueryはバージョンアップしてないってだけで
24週間よりも前に見つかったバグはたくさんあるんだよ
そういうバグに対応している >>805
じゃあ短いコードが必要なんですねw
@@iteratorの拡張に対応してないブラウザはどうするんですか?w >>800
jQueryが速いのは開発速度
それでいて、ReactやAngularよりも圧倒的に
メモリ使用量が少なく速い。ライブラリのサイズも小さい うーん
@@iteratorを拡張するより
queryAll()みたいな自作関数を用意する方が良くない?
結局document.querySelectorAll()ってクソ長いしさ
map使いたくて[...]すればもっと長くなるし そして>>809の考えを発展させたのがjQuery >>807
forEachを使えばいいでしょ
元々、Androidを引き合いに出していたくせに都合が悪くなると、条件後出し
格好悪いよ >>806
なんでそんな適当な嘘つくの?
ブラウザは毎日沢山のバグが見つかってるしjQueryのissuesにもいくつもの報告が挙がってるし
一方とっくに解決された問題も数多あるのにただjQueryが更新されてないだけでしょ
jQueryは6週間のサイクルに全然追いつけてない
いい加減認めたほうが良いよ >>812
> ブラウザは毎日沢山のバグが見つかってるしjQueryのissuesにもいくつもの報告が挙がってるし
それを手動で対応するは大変だな。
そんな事やってるの?
お前が自分で作ったものは毎日たくさん修正が必要だってことなんだなw >>813
そうだよ?ってかそうじゃないの?
毎日色んなバグ報告チェックしてトラッキングしてブラウザのバージョンアップ前には
ベータ版で確認して毎日のようにブラウザやライブラリにissuesを飛ばす
そして毎日カット入れて更新する それが毎日の仕事でしょ
君毎日何してるの? >>815
ん?言い方が悪かったな。
お前が書いたJavaScriptのコードは
毎日のようにブラウザのバグに対応する修正を
してるのかって話だよ。 >>816
どうせきっと関係ないバグの話を持ち出してくるぜーw みてな。 どこぞのブラウザのバグに対応するなんて
本質的じゃない仕事は他人に任せて
自分がやるべき仕事をしたいな
だからライブラリを使う >>817
勿論するよ
テストもターゲット環境も毎日変わるし
ブラウザやフレームワークもbetaやdev版も使ってるから毎日何か発見があるからね
そこで今動いていても将来的に不味そうならきちんと修正する
殆どはブラウザ側やライブラリ側の問題で
そういうときは基本的には報告したりパッチを書いて向こうに直してもらうけどね >>815
屁理屈で相手を打ち負かそうとしてるのか知らんが下手すぎだろw >>820
だからー、お前が書いたJavaScriptコードを
修正しているかどうかに、はい か いいえ で答えろよ。 網羅的でなくても(できれば日本語だとうれしいけど)このURL見ろでも良い
それを元に/それに対して批判や意見書くつもりはない
普段jQueryほとんど使わないんで知識がないから
参考程度でも事例を知りたいというだけだから >>753 -> >>757 -> >>798 -> >>807
論点に一貫性がない奴だな
食いつけそうな場所を見つけて反論してるだけで、前に発言した持論をガン無視 ライブラリを使わないやつって、毎日のように
あのブラウザで動かなかった、このスマホで動かなかったと
特定のブラウザに対応するために修正してるんだなーって思った
大変だなーって思った >>825
ただの感想
実にいい加減な奴だと思った ライブラリとかUAのバグとかで悩まなくて良い方向に持ってく努力 ライブラリを使わないやつの仕事は
各ブラウザのバグや互換性のなさに
対応するコードを書くことなんですよ。
一体いつの時代に仕事なんですかねw >>831
じゃあjQueryなどのライブラリを使えば良いのでは?
毎日の無駄な仕事から解放されるよ。 気づいてないようだけど、ブラウザのバグを報告して正しく
動くようになれば、jQueryも正しく動くようになる
だからjQueryをバージョンアップする必要はないってことになるんやで? >>824
彼は逃亡中だから、そっとしておいてあげて >>833
全員が全部のライブラリ使えるわけじゃないし
学習コストを各人のオフの時間に転嫁するのは倫理的にどうかと思うからな なお報告しても正しく動くようになることは決して多くなかったIE 開発コスト > 学習コスト
これが成り立たないのが初学者なんやでプロじゃない
プロは開発コストを減らすために学習する
だけど素人は開発しないので学習コストのほうが高く見える ブラウザの互換性問題なら、PolyfillとBabelで十分だな w3techsの統計がよく挙がるけど
w3techsの統計って検証可能なの >>841
可能
FAQにどうやってデータを集めているか書いてある
https://w3techs.com/faq
> How do you know which technologies are used by a site?
>
> Primarily, we use information provided by the site itself when downloading
> web pages. In other words, we fetch web pages very much like a search
> engine, and analyze the results. Additionally, we use publicly available
> information from sources such as Alexa, Google, Microsoft and ipinfo.io. >>840
そこで解決したならば、jQueryも問題なく動くっつー訳やな >>842
データ提供元が書かれてるだけだし、publicly available informationっていっても具体的に何よ?と
Alexaって度々個人情報関係で問題起こしてたり、サイトランキングとか言って出鱈目なアクセス数出してるところでしょう
GoogleやMicrosoftがデータを出してるなら、
GoogleやMicrosoft自身がjavascript利用状況の統計を出してそうなものだけど > GoogleやMicrosoft自身がjavascript利用状況の統計を出してそうなものだけど
なんのために? w3techsが自前で収集したというデータがあるんだったら
それが何らかの形で独立して公開されてないと検証不可能 >>846
じゃあ自分でデータ集めて解析すれば良いんじゃないですかね?
嘘か本当かわからないから、
俺は信じない!じゃだめでしょw せめて対象サイト一覧ぐらいは無いと、同じようにデータを集めるということができないんじゃね >>843
問題なく動くことと採用することは等価ではない >>850
はい。知っています。
動かない場合があっても採用しますよ。
どうせ生JavaScript使っても
動かない場合があるんですから >>849
> せめて対象サイト一覧ぐらいは無いと、
https://w3techs.com/faq
> Which websites do you count? Do you crawl all the web?
> For the surveys, we count the top 10 million websites according to Alexa,
Alexaのトップ1000万ページだってさ >>847
いや、いいでしょ
嘘か本当か分からないものを根拠に「jQueryのシェアが延びてる」と主張する方がおかしい どうせ何使っても動かない場合があるんならjavascriptやめようw 誰も検証しないからどうでもいいんだよ
オープンソースでも誰も検証しなくて問題が表沙汰にならないのと同じ >>851
それはお前さん自身が勝手にやれ
>>843のような反応をする意味は何だ? >>853
嘘か本当かじゃなくて、
w3techsの調査を信用するかどうかでしょ?
で俺は信用してるし、お前は信用してないってだけ。
お前は誰も信用してないんでしょ?
なら何も言う資格はないよ
だってお前のことも信用出来ないんだから >>852
alexaのトップ1000万サイトそれぞれのURLって誰でも自由に取って来れんの >>857
意味と言われてもね。
上の方で(逃げたみたいだが)
自分で書いたJavaScriptのコードがブラウザのバグで動かない場合に
どうするんだ?って聞いたら(自分で書いたJavaScriptのコードをなおすのではなく)
ブラウザ開発者に報告している、毎日報告するのが仕事だって言ったから、
じゃあ、ブラウザのバグがなおればOKっていうのなら、
jQueryだってブラウザのバグがなおったら、解決するって話じゃんって指摘しただけ
その延長で、jQueryの土台となるJavaScriptやブラウザ側で対応できるなら、
jQueryをそんなに頻繁にバージョンアップしなくても、なおせるんですよーっていう話 統計は集計方法が変われば、がらりと変わるものだからな
jQueryが下降しているデータもある
https://ferret-plus.com/8989 >>861
そのサイトが信用に値するという根拠を教えてください。
全てはそこですよ。信頼できる根拠があるかどうか どうだろう?
jQueryに関する質問が減ったら、
使われてないことにならないだろうか?
ちょっと試してみよう
みたいなことはやめてくださいw
直ぐにバレますから >>861 >>860
上の方など、知らん
同じ奴と見なしてレスするのを止めろ
そもそも、ブラウザ個別のバグにPolyfillで対処などせんぞ 質問の数が減らないのは、今までの質疑応答で解決できてない新たな問題がたくさんあるってことやで・・・ >>858
誰も信用してないってどこから来たんだ?
頭大丈夫か? https://w3techs.com/ が信用に値するという根拠を教えてください >>866
stackoverflowは質問者以外にも質問をクローズする権限があるんだが >>869
FAQ読んで納得したよ
>>870
多く使われてるのに質問が少ない
殆ど使われてないのに質問が多い
ReactとAngularは後者 >>871
870の内容を無視したレスをされてもな >>872
なら、その質問をクローズする権限を持っていることが、
どう影響するのか、その根拠を示してくれないか? >>873
ははw どうせ何も知らんってw
クローズされた質問が、統計データに
含まれているかどうかすらも調べてないだろ
だいたい質問の数と使われている数は関係ないのに
自分の都合の良い別のデータを持ち出してきて
勝手に独自解釈してるだけなんだからさ 最後の2行、まさにそのとおり
統計なんてそんなもんだよな >>871
答えになっていません
それで納得するなら、stackoverflowも「helpを読んで納得」すればいいんじゃないですか
https://stackoverflow.com/help
それにしても、当該サイトの説明だけで納得するとは、他人の言を裏をとらずに鵜呑みにするタイプなんですかね 同じトレンドなら、StackOverflowの質問だけのトレンドじゃなくて
Googleトレンドのほうがまだ信用できるかな
https://trends.google.co.jp/trends/explore?date=all&geo=JP&q=jquery,angular,angularjs,react >>876
> それで納得するなら、stackoverflowも「helpを読んで納得」すればいいんじゃないですか
質問サイトであるstackoverflowのhelpには
質問サイトの使い方しか乗ってません。
統計データを集めてるサイトじゃないんですから・・・ >>874
2-3行目ってお前は調べて書いてんの? javascriptコードやライブラリロードの有無じゃなくて
javascriptがOFFでも動くサイトの割合とか
特定ライブラリが実際に使われているかどうかの統計どっか出してくんねーかな >>879
そういうのって、このデータを信じてください!って
持ってきてるほうが出すのが筋じゃないの?w >>878
結局、答えになっていませんが、運営のいうことを鵜呑みにする理由は何なんですかね? >>880
> javascriptがOFFでも動くサイトの割合とか
javascriptがOFFだと「JavaScriptを有効にしてください」って
書いてあるだけのページが表示されるサイトも、
動くってことにして良いのか? >>882
そりゃ「統計データ」がどういうふうに
集められたかを書いてあるかどうかでしょw >>881
それはただの言いがかりじゃないの?
可能性の視点なら、いくらでもいちゃもんつけられるでしょ? stackoverflowのデータに、世界中のサイトを
調べて回ったって書いてありましたっけ?
あくまでstackoverflowに寄せられる質問の数だけでは? >>885
stackoverに寄せられた質問をもとにしたデータが、世界中のサイトを
調べた結果でないのは可能性ではなく、明らかなことでは? >>874
というか、根拠を示せというなら、>>871も根拠を示さなければ、公平ではないのでは? 多く使われてるっていうのは、 https://w3techs.com/ で
一応は納得するけどさ >>887
2-3行目と書いてるのに、なぜ関係ない方を持ってくるの? >>888
stackoverflowのデータが質問の数であることは納得してるよ。
それと世界中のサイトで使用されている数とをごっちゃにするなってこと >>890
だから2-3行目を持ってくるのは、
このデータを持ってきたやつの仕事だって言ってるだろ
無視して同じこと言わせるな >>883
常識的に考えるとそこはNOだよな
サイトの本旨が達成できないといけない
逆も同じで文字サイズ変更のためのjsコードがあっても
画像を拡大するためのjsコードがあってもサイトの本旨は達成できる
だから面倒なんだよな
他の項目も同じで実情が反映されないと >>892
それはあんたの論でしょ
>>885で否定してんのに、関係ない話でレスすんなよ 2ch/5chの質問スレの数やレス数をみただけでは質問数なんて計れないのと同じ
将棋板だか将棋スレなんてテンプレだけでかなり占めてたりするしな >>874
お前の拡大解釈だぞ
stackoverflowの統計情報がjQueryのシェアと一致するとは、一言も書いてないのにどうしてそういう解釈になるんだ? お前らこんなとこでサボってないで仕事しろよ
納期迫ってんぞ >>891
>>871の最終行に根拠がなく、あなたの決めつけにしかなってないのですが >>896
全てはこいつが悪い
> 861 名前:Name_Not_Found[sage] 投稿日:2018/07/30(月) 00:53:43.83 ID:???
> 統計は集計方法が変われば、がらりと変わるものだからな
> jQueryが下降しているデータもある
> https://ferret-plus.com/8989
変わったのは集計の方法じゃない。
集計の内容が変わってる。
世界全体のシェアの話をしている所に
stackoverflowの質問の割合を持ち出してきて
「jQueryが(目的からして違うデータだけどそれ隠してやろう。ぷぷぷ)下降しているデータもある」
と言い出したのが悪い ロードしているけどろくに使われていない・古いコードが残っているだけの可能性
シェアを直接反映しているかどうかわからないsofの質問数
もう何も信用できない!! jqueryでも特に困らないのでvueなどに移行するタイミングがありません
一度飛び越えてしまえば、移行して良かった〜ってなりそうな気もしますが
どうしたらいいですか? str = `あいう$ えおか$ きくけ$`;
$前の文字列を取り出したい時、
それぞれ文字列は(ひらがなだけではなく)$以外の文字で
長さも異なります、スペース込みでもいいです
str.match(/[^\$]+(?=\$)/g);//["あいう", " えおか", " きくけ"]
で取り出せるのですが
[^\$]の部分は、こう書くしかないでしょうか?
str.match(/.+(?=\$)/g);//["あいう$ えおか$ きくけ"]
もやってみましたが$もふくまれてしまい、"け$"からマッチしてしまうのです だと思う
正規表現を使わない方向で、$でsplitして得た配列の末尾の1要素を消してもいいけど
ところで、[]の中では、\以外のメタキャラクタは
\つけなくてもメタキャラクタ扱いされないんじゃなかったっけ >>910
[\\]のときは特別だということでしょうか? splitとmapで一行いけるかも
複数行使ってpopとか空文字列要素削除をやった方が読みやすいけど var str = 'ab$cde$$fgh$ijklmn$opq';
console.log( str.split(/\$+/).slice(0, -1) ); // [ 'ab', 'cde', 'fgh', 'ijklmn' ] match(/[^$]+/g)
でも実際には問題ないのでは? >>908
> jqueryでも特に困らないのでvueなどに移行するタイミングがありません
> どうしたらいいですか?
作るものを変える必要がある。いまウェブサイトを作ってるなら、
アプリケーションに変える。スマホアプリなんかを想像するといいだろう。
ウェブサイトは基本的に静的なものとして作るので、動的なものが
作りやすいフレームワークっていうのは根本的に相性が悪い
jQueryは静的なものに対して、追加で動的なものを追加できるので
ウェブサイトと相性がいいが、最近のJavaScriptフレームワークは
すべてを動的なものとして作ろうとするからウェブサイトとは相性が悪い。
まあ顧客を変えるか、仕事を変えるしかないね
相性が悪いものに移行しても後悔するだけだよ PWAってステキだけどいかんせんServiceWorkerの扱いが難しい
特に更新周り
アプリならまあバージョンJSON用意しといて
タイトル表示中くらいまでにそれだけ必ず最初にキャッシュレスで取得して
更新されてたらSW含めて全キャッシュ破棄してリロードでいいんだけど
ニュース記事みたいのだと難しい
最近いつも考えてる 動的なJSのフレームワークにjQuery入れたらダメ?
DefferedとかやっぱりjQuery便利だよね uncatchもコンソールに表示してくれるしPromiseで良くね >>922
IE6から動く。下手すりゃそれ以前でも PromiseはIE11でも動かないよ
promiseの仕組みはあるけど、APIのPromiseのES6からでIE11でも未実装 実装されてるかどうかじゃなくて
動くかどうかなんだなぁ ライブラリやポリフィルコードで擬似的にPromiseっぽい記述を実現できたとして
それを動くと表現しちゃったらもうなんでもアリじゃん Polyfillをいくつも読むなら、素直にjqでいいだろ IEはすべてのバージョンでPromiseのAPI実装されていません。
Polyfillを入れないといけません。 そうすると>>929のURLは観点が異なるか全くの嘘っぱちかどっちかということになるが テンプレは何スレか前から消されたり改竄されたり復活したりを繰り返してるよ >>932
では「動くかどうか」とはどういう意味だ?
>>926は「動かす方法があるか」という意味ではないのか? そもそもIEでで動かす必要がない
余計なお世話
IEを使ってるような人はモダンブラウザと同じリッチな体験など求めては居ない compatibility tableの「IE11」の項目しか見てないから、>>930の反応になるんだろうね >>939
caniuseを持ってきたのは酷いね
あっちには書いてないから >>940
つまり精神が正常な一般人は使わないってことだよ >>940
> あっちには書いてないから
Resourcesのリンク先にあるが、真っ赤で思考停止している人はそこまで見ないだろうな 情報は出尽くしたので、>>922は早めに質問をたたんでくれんかね var promise = {...} って自分で定義しても動くよな >>922です
IE10どころかIEは全てPromise動かなかったです。
polyfilでなんとかしましたが、なんだかなぁというのが正直な感想です。 >>945
古いブラウザが新しいブラウザより機能的に劣るのは当然
Polyfillで動くだけマシだよ
これが文法上の問題になると、トランスコンパイラしか選択肢がない >>945
> polyfilでなんとかしましたが、なんだかなぁというのが正直な感想です。
何が不満なんだろう? promiseなんて使わなきゃいいじゃん
たぶん10年待てば全UAでawait使えるようになってるよたぶん 実際IE使ってる人見たことないや
誰が使ってんだろ ITリテラシーの低い人はIEとEdgeの違いなど判らんのだよ
ただ、あるものを使うだけ IEは老人や大企業や官庁など、つまり金を持っているそうに多い。
それに対して、スマホは金のない若者が多い。
だから大企業向けのサイトほどIEが重要になる。
でもEDGEは要件に入れなくても良いと言われる。 資本主義社会ではITリテラシーのある貧民よりも、
ITリテラシーのない金持ちの方が100倍大事。 >>950
多分、「実装されてないのか。Polyfill使うなんて面倒」が正直な気持ちなんじゃないですかね
IE10リリース当時はES6が生まれていないんですから、実装されるはずがないんですがね
むしろ、「古いブラウザ(IE10)でよくぞ動いてくれた」というのがIE6時代を生きた自分の正直な気持ちですが
Polyfillやらトランスコンパイラやら、今の時代の人は十分に恵まれていると思いますね 共産党支持の俺様が来ましたよ。
資本主義?
いや金持ちに媚びるのはご免だね。
アベみたいなヴァカが生まれの良さだけで総理なんだぜ。
jQueryなんか使わせるなよ
ヴァカ 重要なのは金持ちかどうかじゃなくて、金払いがいいかどうかだ 汚職献金をどうにかできない限り共産だろうが資本主義だろうが大差ないよ >>949
要件ってなんだ?
ここはいつから仕事の為のスレになった?
仕事なら同僚や先輩や、お金払って講師にその時その時で教えてもらえばいいだろ
正直IE10だのIE11だのを特別視して長々とここで語ることはスレチ
ライブラリの用に「IE対応のための」別スレ立ててやれ > 要件ってなんだ?
IEでも動くこと。
言われなきゃわからんかね? 仕事のためにWeb作ってる奴はここから出て行け
ヴァ〜カれ ここはいつから仕事の為のスレになった?
正直IE10だのIE11だのを特別視するヴァカ!
jQueryなんかも仕事の為とかだからだろ?
仕事の為にポシリー捨てるヴァカは消えろや 要件とか知ったことじゃねーよ
IEやらjQueryやらヴァカじゃねーの!? IE前提のモーダルダイアログ使いまくりのwebアプリ作っちゃったんだけどどうすれば簡単にchromeに乗せ換えれますか? /mywebapp/ie/と/mywebapp/chrome/を別に作ります jQueryやらIEやらwww
作りたいものを作りたいように作ればいいだよ
仕事wwwヴァカwww selectのオプションで一文字だけ途中から変更したいのですが すいません、書き込みミスしました。
selectのオプションで一修飾した一文字を先頭に追加したいのですが
次のようなプログラムでは文字だけは表示できても文字修飾はできませんでした。
dummy = document.createElement('span');
dummy.setAttribute('class', 'index_num');
dummy.setAttribute('style', 'font-family: arial,sans-serif; font-size: small ! ; line-height: 160% ! important; border-color: rgb(255, 255, 255) ! //- 少し長いので略 -
dummy.innerText = "適当";
select.options[0].insertAdjacentElement('afterbegin',dummy);
selectのオプションはそういう仕様なのでしょうか。 <option></option>の中に入れることができるのは、生テキストだけだと思ってたぜ
<span>なんか入れられるんだなスゲー!! >>972
入れられるのは入れられるのですが文字が修飾されてないんです(T_T)
afterbeginをbeforebeginに変更してもダメでした。 >>973
一応書いておくが、本当に「入れられ」てるか確認したか
HTMLに書いてもいいしjsで入れてみてもいいし、
DOMインスペクタでDOMツリー確認してもいいしjsでinnerHTML確認してもいいが >>974
firefoxのインスペクタで確認しましたがそれだけでは不充分と言うことでしょうか。 https://momdo.github.io/html5/forms.html#the-option-element
>要素がlabel属性およびvalue属性を持つ場合:空。
>要素がlabel属性を持つがvalue属性を持たない場合:テキスト。
>要素がlabel属性を持たない場合:要素内の空白文字でないテキスト。
<span>が許されるならテキストじゃなくてフレージングコンテンツって書かれるはずだよな
仕様と実装の問題なのでjavascriptスレの話題ではないとおもいます 特定の <div> のなかの <input> の状態を全部sessionStrageに保存して
あとでそれを再セットするって input の数や種類に依存せずにかけませんか?
div にも input にもユニークな id が振られてます
input.type は今の所 text select と checkbox だけです
native js でも jQuery でもいいです IEとEdgeの違いが分からないITリテラシーの低い人に同じコンテンツを与えるべきなのだろうか?
async関数を多用したアプリをトランスパイルしたことがあるけど
IEじゃGCに負荷がかかってプチフリ多発&メモリリークした。
基本的に別のページを用意してあげることこそがIE対応と言えると思う。 >>979
IE6SP2-をまだサポートしている時代の人ですか んにゃIE9,10,11の話だよ
API有る無しだけではなくやっぱりエンジンの出来が段違いだから
同列のコンテンツは提供できない >>979
IE対応ページだけを用意すれば、Edgeでも同じように見えるよ
それで問題解決じゃない 同じように見える必要がない
そんなにWebで同じに拘りたかったらFlashでも使ってろ 同じように見える必要がないって決めつけるのは
自分の都合しか考えてないからだろうか > そんなにWebで同じに拘りたかったらFlashでも使ってろ
ウェブにこだわりたいのは、古いブラウザを使ってる
ユーザーよりも、ウェブのほうが大事だって思ってる人の方だろう >>984
同じに見せる必要があるって決めつけるのは
自分の都合しか考えてないからだろうか むしろ未だにIEでしか実現できない機能も多いけどな
ActiveX使ったローカルファイルアクセスとかMSアプリとの連携とか ActiveX使えばどんな機能でもポリフィルできるからな
IEはEdgeより高機能でポテンシャルが有るとも言える そもそも同じように見せることなんて可能なのか?
うちのオカンは文字サイズをめいいっぱい大きく設定してるから全てのサイトで表示が崩れてるぞ >>986
違うよ。顧客とユーザーのためだよ。
自分一人ならどうでもいいって思うでしょ? 同じ表示がどうしてユーザーのためになり得るのかが分からん
機能はCh、今日はIE、明日はFxを使うユーザーが戸惑うということか?
それよりもIEは相対的に古い環境で動いてる可能性も高いんだから
機能と表現と負荷を落としたページを提供するほうがよっぽどユーザーのためだと思うけどな
「顧客のため」に至ってはその表現がわけわからん
顧客がそう言わなくともそれを望んでいると知ってるということか?
もうそういうことだったとしても、実はこうした方が良いと思いますよと
顧客を正しい方向性に誘導してあげるほうがよほど顧客のためだろうよ じゃあ間をとってActiveXでネイティブのポリフィルを入れることにしよう
IEじゃJSは遅くて重たいんだから >>992
> 基本的に別のページを用意してあげることこそがIE対応と言えると思う。
別ページを用意したら1ページですむのが
2ページなるだろ。手間が2倍になる 一番いいのはEdgeでもIEでも両方で動く技術だけを使ってサイトを作る。
そうすりゃ多少IEで崩れたとしても、基本的なところは問題ない。
これが顧客のための最善の方法だろ 下手にasyncとか使わず、jQueryの範囲でやるのが一番かな
jQueryはPromise互換の機能も持ってるわけだしさ IE9とChromeやFirefoxじゃDOM構築やJSの速度が普通に数十倍とか違うからな
GPUも使ってくれんし相対的にスペックも低いことを考えたら
想定段階で同じに作ろうとすることが無理なコンテンツって言うのは出てくるだろうよ サーバーサイドでChromeでレンダリングしてIEにはそれを送ればいいじゃん 平気で嘘をつくやつのことなんか信用できんな
GPUで変わるInternet Explorer 9のパフォーマンス
http://ascii.jp/elem/000/000/561/561415/index-2.html
GPUの種類により
パフォーマンスが2倍以上異なる場合も IEももう一年とちょっとの命
JSスレでも今回が実質最後の盛り上がりかもしれんな このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 58日 5時間 39分 5秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。