JavaScriptでWeb的なプログラムを書いたことがある人は、XMLHttpRequestを使った経験もあるのではないかと思います。XMLHttpRequest,略してXHRは、JavaScript(+DOM)でサーバーとHTTP通信をするための唯一の方法としての地位を長らく保ってきましたが1、ここ3〜4年でより新しいAPIであるfetchAPIが登場しました。fetchAPIが出たばかりの頃は何だこのおもちゃはと正直思いましたが、いつの間にか仕様が充実していい感じになっていました。 皆さんは、この新しいAPIであるfetchをちゃんと使っているでしょうか。それとも、古いXHRを未だに使っているのでしょうか。この記事では、未だにfetchを使っていない人を主な対象としてfetchの使い方を解説します。(XHRと比較しながら解説するので$.ajaxとかaxiosとかしか使ったことがな

最近、TypeScriptについて考えることが多い。SideCIでWebフロントエンドの開発に使いはじめたこともあるし、Steepの開発をしていて「TypeScriptだとどうなるんだっけ??」などと言いながら試してみることもある。TypeScriptは型付きのJavaScriptである。構文はほとんど同じで、使えるライブラリもかなり近い。JavaScriptへの変換はかなり自明で、ランタイムは全く同じ。性能の差はない。Webpackやnpmを初めとするツール群もかなり共通しているし、アプリケーションも似たようなもん。書いている気分には、ほとんど差がない。つまり、TypeScriptとJavaScriptでプログラミングしているときに、なにか違いを感じるとすれば、それは(ほとんど)型付きの言語と型なしの言語の差と考えて良い。RubyとJavaを比較するのとは、全然話が違う。構文も意味も

AngularJS の勉強、始めました。 最初はそのプログラミングに関する独特のお約束事項にイラッとしましたが、キモであろう DI を「疎な関係のクラスを(実行時に)結びつけるのに必要な仕組み」と割り切り、DI – 猿でも分かる! Dependency Injection: 依存性の注入 で引用されているITpro 記事 の クラス図 をコードから想像できるようになったところで、それなりに面白くなってきました。 何より「jQuery が要らなくなる!」のがとっても快感なんです (つらい時もあるけど…)。 さて今回は、jQuery まみれのページをAngularJS で書き換えた時に気付いた Ajax の動作 − 非同期通信の戻り値をいつどこで DOM に反映するか − に関する話題を書いてみます。 jQueryの場合 検索のクエリを渡すとGithub のリポジトリを返す関数を例にとっ
この投稿は、JavaScript Advent Calendar 18日目の記事です。 更新履歴 こちら をご覧下さいJavaScript の書き方をアップデートするJavaScriptGood Parts で書かれているような JS の書き方は、古くなりつつある部分も多いです。 正直なところ、自分はあの本が「今でも」良書だとは思っていません。 初学者に勧めることもしません。まんべんなさと普遍性と客観性から「パーフェクトJavaScript」 を勧めています。 その頃と比べると、JavaScript をとりまく環境は変わりましたJavaScript の進化に合わせて書き方もアップデートしていくべきなので、今回は分かりやすいしきい値として 「IE10 以下を切れるとしたら」 という前提で、列挙してみます。 たとえば XHR2 や FileAPI に依存したサービスをやる場合な


サインアップフォームなどでユーザー名が取得可能かどうかAjaxで問い合わせるアレです。 愚直に実装するとkeyupイベントをキャッチして$.ajax()を使うだけですが、これだと1文字入力する毎にサーバのAPIを叩くことになってしまうので少し工夫。 Ajax通信をしたいテキストフィールドにデータ属性を作ってAPIのURLを書いておく。 <input type="text" id="user_username" name="user[username]" data-autocheck="/autocheck/username"> $(document).on("keyup", "input[data-autocheck]", function() { var elem = $(this); var data = { url: elem.data("autocheck"), value: el

Sending and Receiving Binary Data https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data 場所変わったので↑https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest/Sending_and_Receiving_Binary_Data 「JavaScript バイナリ」でググっても古い情報ばかり見つかるので、ついカッとなって勢いで翻訳しました。 多分精度は低いのでおかしい所は指摘を頂けると嬉しいです。すぐ直します、恥ずかしいので。 初めに追記 (2013/04/27)本家の方に翻訳文を移しました。↓こちらの文章の方が精度が高いのでお勧めです。 バイナリデータ

Ajaxでデータとってくる間にローディングいれるとき、場合によっては処理が一瞬で終わって逆にローディングがチカっとしてうざいので最低でも1秒はローディング出すって処理を最近だとJSDeferred使ってこんな感じで書いてる。 loading.show(); Deferred.parallel([ Deferred.wait(1), function() { var d = Deferred(); $.get('hoge', function() { // 何か処理 d.call(); }); return d; } ]) .next(function() { loading.hide(); }); 便利なり。
JavaScriptのパフォーマンスのボトルネックを解消するテクニックとアプローチを解説します。実行時間、ダウンロード処理、ページのライフサイクルなどJavaScriptの様々な部分に対応しながら、DOMへのアクセス、ネットワークのレイテンシ、JavaScriptの同時ダウンロードのブロッキングなど、高速なJavaScriptエンジンであっても最適化できない部分をもカバーしています。本書で述べられているテクニックとアプローチは、パフォーマンスを向上する上で重要であるだけでなく、今後低レベルなJavaScriptの実行時間が短縮されていくにつれて、さらにその重要性は増していくでしょう。 はじめに 1章 読み込みと実行 1.1 スクリプトの配置 1.2 スクリプトのグループ化 1.3 ノンブロッキングなスクリプト 1.3.1 スクリプトの遅延 1.3.2 動的なscript要素 1.3.3 X

最近JavaScriptを個人的に勉強しているんですが、そんなJS初心者ながら色々試すなかで気が付いた開発とかTDDとかについて色々思うところをアウトプットしてみようかと思います。 一番多いのは、ClientSideJSで、使ってるのはjQueryとQunitが中心でした。 でもこれからは別のフレームワークや、ServerSideJSなんかも出てきますし、 今読んでる本が終わったら、こっちの本も見てみたいと思っているので、 Test-DrivenJavaScript Development: Safari Books Online その前にこれを書いておこうという目的です。自分に付ける一つのTagという感じです。 あまり一貫性に拘らず、垂れ流したいと思います。 Ajax とAPI 以前こんな記事を書いたように、サーバ側がAPIでデータを提供し、ロジックをクライアント側に固めるタイプの開

2010年08月17日06:45 カテゴリLightweight Languages Ajax -Goodbye, JSONP. Hello, Access-Control-Allow-Origin もうそろそろJSONPとはお別れできるのではないかと思い立ったので。 XMLHttpRequestとその問題 AjaxといえばXHRの愛称で親しまれているXMLHttpRequestですが、これには一つ重大な欠点がありました。 これを発行するDHTMLページのドメインが、Request先のドメインと一致する必要があったのです。いわゆる Same Origin Policy というやつです。おかげでサイトをまたがって使えなかったのです。これではマッシュアップできない。どうしよう。 JSONPとその問題 そこで生まれたのが、JSONPという手法です。 これは、scriptノードを追加した時に、単


2006年03月06日 Ajaxにおけるメモリリークの注意点 [ajax][javascript][はてブ] はてブの「ブックマークの確認」ページは、IEでメモリリークする! IE のメモリリーク調べる為の「Drip」ってツールが ここにあって、 このツールは単純にリークしそうなコードチェックしたり、 オートリロードして、外部から参照したメモリ使用量を記録してくれるだけなんだが はてブの追加ページで確認するとこんな感じになる。 (オートリロードなんで負荷高くなるから、悪用したり、やりすぎたりしないようにw) タスクマネージャー等の、外部から参照したメモリが増えているからといっても OSがアプリケーション用にキャッシュしているメモリが増加しているだけの 可能性があるから、一概に鵜呑みはできないんだが 平均して1回のリロードに 1M 近く増えていくとかおかしい。 (MicroSoft もタスク
JavaScript で時間待ちをしたい場合、 function busywait(sec) { alert(”ループを開始します”); var start = new Date; while (1) { var cur = new Date; if (sec * 1000 <= cur.getTime() - start.getTime()) {break; } } alert(”ループを終了します。”); } のような単純なビジーウエイトをすると、ブラウザがセキュリティエラーを出す場合があります。 サーバにPHP やCGI のコードを設置することができる場合、XMLHttpRequest を使って応答を待つことにより、ウェイトを挿入することができます。 クライアント側 function sleep(sec) { alert(”サーバにリクエストを投げます”);
あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。


1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く