Web Platform Dive into the web platform, at your pace.

You've probably heard the talk around the water cooler about how promises are the future. All of the cool kids are using them, but you don't see what makes them so special. Can't you just use a callback? What's the big deal? In this article, we'll look at what promises are and how you can use them to write better JavaScript. Promises are Easier to Read Let's say we want to grab some data from the
単純ではない、最新「クロスサイトスクリプティング」事情:HTML5時代の「新しいセキュリティ・エチケット」(2)(1/3 ページ) 連載目次 皆さんこんにちは。ネットエージェントのはせがわようすけです。第1回目は、Webアプリケーションセキュリティの境界条件であるオリジンという概念について説明しました。 現在のWebブラウザーでは、同一オリジンのリソースは同じ保護範囲にあるものとし、オリジンを超えたアクセスについてはリソースの提供元が明示的に許可しない限りはアクセスできないという、「同一オリジンポリシー(Same-Origin Policy)」に従ってリソースを保護しています。 その保護範囲であるオリジンを超え、リソースにアクセスする攻撃の代表事例であるクロスサイトスクリプティング(XSS)について、今回、および次回の2回に分け、HTML5においてより高度化された攻撃と、その対策を説明しま
Swift is the best programming language you should learn and make your dream app easily. Swift programming is a powerful yet easy-to-learn coding language created by Apple. It's frequently used for developing iOS and macOS applications, as well as tvOS and watchOS apps. While you can use other languages to create Apple apps, Swift is the preferred language, and it's recommended because its code is
概念/仕組み Deferred/Promisesは非同期処理を簡単にするための取り決め。 callback hellと呼ばれているような、非同期処理によるコールバックのネストを軽減することができて非常に便利。 慣れれば便利だが、一見どう使えばいいのか分かりづらいので、少し解説を書く。 ここではPromises/Aという仕様を実装したQというライブラリを使うが、jQuery.Deferredなどもほぼ同じである。 まず、Deferred/Promisesは、関数のreturn、try/catchの非同期版である。 www.example.comの内容を取得し、正しく取得できたら中身を表示し、取得できなければエラーを表示する、というプログラムは 同期的なコードでは、 function get() { var req = new XMLHttpRequest(); req.open('GET',
JSDeferred $.Deferred 長年JSDeferredを愛用してましたが、jQueryにDeferredがついたらしいので記憶を整理して慣れていきます。 おさらい 基本チェイン // JSDeferred Deferred.next(function(){ alert("a"); }).next(function(a){ alert('b'); }).next(function(b){ alert('c'); }); // $.Deferred $.Deferred().done(function(){ alert("a"); }).done(function(a){ alert('b'); }).done(function(b){ alert('c'); }).resolve(); 値のリレー // JSDeferred Deferred.next(function(){
追記 たくさん反響があって驚きました。念の為書いておくと、私はこの記事で仕組みを解説しただけで、このようなノウハウに賛成も反対もしていません。追記はここまで。 azu さんのつぶやきで知った、Dangers of anonymous function closures が、例がよいのに説明が少ないので、ここで丁寧に解説します。なぜ、 jQuery で ;(function () ...とセミコロンで始めるコードがあるのかがわかります。 次のサンプルの実行結果を想像して下さい。 var foo = function(bar) { console.log("foo"); return bar; } (function(){ console.log("bar") })(); 結果は "foo bar" を印字します。多くの場合、これは意図しない挙動だと思います。"bar" だけだと思いませんか。
(updated 2011-07-11: この記事はjQuery1.5当時のものです。jQuery1.6以上であればpipeメソッドが存在するので、このエントリで懸念している部分については解決します。id:nanto_viさまのコメントも参照のこと) 最近、僕の観測範囲ではjQuery1.5からサポートされたDeferred Objectが話題になってますね。 ここで書いていたことをちょっと解説。 リリース時、遂にjQeuryでも遅延処理のサポートが!と僕もちょっと喜んだのですが、それもつかの間、以下の動作を見ていただきたいな、と。 → http://jsdo.it/ttaiyoh/evYG 普通、とくにjsDeferred使っていた人間なら、以下のような動作を期待しますよね? → http://jsdo.it/ttaiyoh/zI5H Deferred Objectのソースみてもらえると
はじめに 最近になって jQuery に Deferred Object と呼ばれるものが追加されたことを知りました。バージョン1.5から追加になったようです。 ここのところ色々な場面で非同期処理と付き合うことが多かったこともあって調べてみたのですが、中々嬉しい機能を持っているやつであることが判明したので、調べた内容についてまとめてみました。 非同期処理は結構書きにくい jQuery Deferred オブジェクトは非同期処理を書きやすくするために用意されたものです。でも何でそんなものが追加されたのでしょうか? 非同期処理は複雑になってくると書きにくいものです。Ajaxリクエストを例に挙げてみます。 $.ajax({ url: "serviceA.json", success: function(data) { // リクエストが成功したときの処理 }, error: function(x
前回 は、「Creating Responsive Applications Using jQuery Deferred and Promises」 の記事と jQuery のリファレンスを翻訳し、Deferred の解説をお届けしました。が、今一歩、Deferred オブジェクトの うれしさ をお伝えできていなかったように思います。今回はその反省をふまえ、単なる翻訳ではなく、元記事の文脈に沿って、Deferred オブジェクトをどのように使うと/何がうれしくて/どうしあわせになるのか、私が学習して得た事をお伝えしたいと思います。 今回は、4本の jsfiddle を記事に埋め込んでいます。jsfiddle 上で自由に編集してテストしてもらえばうれしいのですが、4本すべて実行すると1.4MBものリソースを読み込む事になり、ブラウザに優しくありません。すぐに タブや をクリックせずに、 タブ
JavaScriptjQuery の extend メソッドは便利なんだが複雑で忘れてしまいがちなのでメモしておく。jQuery.extend の呼び出しパターンは次の4通り。$.extend([deep,] target, obj1, [obj2, [obj3, ...)$.extend([deep,] obj)$.fn.extend([deep,] obj)$(...).extend([deep,] obj)全てのパターンで第一引数に [deep,] がある。これはオプションの引数で true を指定するとディープコピーしてくれる。以下では分かりやすくするために deep オプションは省略した一覧を掲載する。$.extend(target, obj1, [obj2, ...)$.extend(obj)$.fn.extend(obj)$(...).extend(obj)だいぶシンプルにな
Microsoft is holding an AI Agents Hackathon, and we want to see what you can build with Python! We'll have 20+ live streams showing you how to build AI agents with Python using popular agent frameworks and Microsoft technologies. Then, you can submit your project for a chance to win prizes, including a Best in Python prize!
最近JavaScriptを個人的に勉強しているんですが、そんなJS初心者ながら色々試すなかで気が付いた開発とかTDDとかについて色々思うところをアウトプットしてみようかと思います。 一番多いのは、ClientSideJSで、使ってるのはjQueryとQunitが中心でした。 でもこれからは別のフレームワークや、ServerSideJSなんかも出てきますし、 今読んでる本が終わったら、こっちの本も見てみたいと思っているので、 Test-Driven JavaScript Development: Safari Books Online その前にこれを書いておこうという目的です。自分に付ける一つのTagという感じです。 あまり一貫性に拘らず、垂れ流したいと思います。 Ajax と API 以前こんな記事を書いたように、サーバ側がAPIでデータを提供し、ロジックをクライアント側に固めるタイプの開
JavaScript の不思議な面白さ - Yahoo! JAPAN Tech Blog JavaScript の不思議な面白さ - 第二回 - Yahoo! JAPAN Tech Blog JavaScript の不思議な面白さ - 第三回 - Yahoo! JAPAN Tech Blog JavaScript の不思議な面白さ - 第四回 - Yahoo! JAPAN Tech Blog JavaScript の不思議な面白さ - 第五回 - Yahoo! JAPAN Tech Blog JavaScript の不思議な面白さ - 第六回 - Yahoo! JAPAN Tech Blog JavaScript の不思議な面白さ - 最終回 - Yahoo! JAPAN Tech Blog のシリーズがJavaScriptの面白さよりも、暗黒面ばかり伝えてしまっている印象で、連載モノだか
JavaScriptは手軽で、実用的なプログラミング言語 どのくらい手軽かといえばJavaScriptを始めるのに(HTMLとCSSは出来た方が良いけど)予備知識はほとんど必要なくて、ブラウザとエディタさえあればすぐにJavaScriptを動かすことができる(FirefoxにFirebugを入れればコンソールでその場実行できるのでエディタも(リロードも)不要)。 その上実用性も十分で、最近のウェブサービスのバックエンドはPerlやPHP、JavaにRuby、Pythonなどなど様々だけど、フロントエンドは必ずといっていいほどJavaScriptが使われている(FlashもあるけどフルFlashサイトでない限りJavaScriptも使われているし、そもそもFlashを表示するのにJavaScriptが使われていたり)。とにかくJavaScriptが必要とされる場面はすごく多い。 と、こんな理
参考ページ Core JavaScript 1.5 Reference - MDC http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference JavaScript - Wikibooks http://ja.wikibooks.org/wiki/JavaScript 【コラム】そろそろきっちりJavaScript (1) "Firebug"の導入〜関数リテラルとは? | エンタープライズ | マイコミジャーナル http://journal.mycom.co.jp/column/js/001/index.html a/PHPerの為のJavaScript解説 - PukiWiki http://kjirou.sakura.ne.jp/wiki_mirror/index.php?a%2FPHPer%A4%C
javascriptjQuery のソースを呼んでいて、イベント登録のところが複雑だったので備忘録として記しておく。バージョンは 1.2.1。そもそもの目的DOM 標準の removeEventListener は、element と type(click, submit, blur など) と listener の3つを指定する必要がある。 element.removeEventListener(click, listener, false); jQuery ではイベント解除に unbind という便利な関数が用意されている。element, type, listener を指定して解除する(通常の removeEventListener と同じ)element, type を指定して全てのイベントハンドラを解除するelement から全てのイベントを解除する例えば、 $("#foo")
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く