上を行くかどうかは知りませんが :-p Ajaxはクライアントの都合でサーバーに通信を仕掛けるpull型の通信ができ、Cometはサーバーが好きなタイミングでクライアントへデータを送りつけるpush型の通信ができるわけですが、新たに双方向の通信ができる技術を開発しました。 具体的には、JavaScriptとサーバーの間で双方向のRPCができます。すなわち、サーバーからクライアント側のJavaScriptのメソッドが呼べるし、逆にクライアント側からサーバー側のメソッドを呼ぶこともできます。 サーバー側で call("addMessage", "Hello!") とやると、JavaScript側の function addMessage(msg) { ... } という関数が呼ばれたりします。 この技術を使って、試しにチャットシステムを作ってみました > デモ (ソースコード)*1 リアルタイ
第1回ではJSONPによるAjax実装を取り上げましたが、今回はそこで使ったJSONという表記法と、JSONPというAjax実装手法について解説します。また、jQueryによる簡単なAjaxの実装についても解説します。 JSONってなに? JSONとは、JavaScript Object Notationの略称です。ECMAScript言語 ECMA-262をベースに作られた、Javascriptオブジェクトの表記法のサブセットです。 JSONは、名前と値のペア、および、順序付きの値という2つのシンプルな構造に基づいて、構造化データを簡潔に表現することができます。 オブジェクト(名前と値のペアの集まり) JSONでオブジェクトを表現するには、メンバを「{」と「}」で囲みます。複数のメンバは「,」で区切られます。例えば、名前が「color」、値が「green」というメンバを持つオブジェク
RSSリーダーについてさんざん言及されたように、Webコンテンツを取得するアプリケーションでは、 HTTPリクエストに If-Modified-Since ヘッダ をつけるなどして対象コンテンツの更新時刻をチェックし、過剰なデータ取得を避けるのがマナーであるとされている。 同じことがAjaxについても当てはまると考える。Ajaxでは、ユーザーのアクションと非同期にHTTPリクエストを行うため、RSSリーダーと同様に人為操作を超えるトラフィックを発せさせる可能性があるからだ。 そこで、素朴な疑問。 ・ブラウザは、ユーザーが意識しないでも更新時刻チェックをやってくれる。 ・Ajaxの主なエンジンとなる Javascript は、ブラウザに組み込まれたものである。 ・Javascript の XMLHttpRequestを使用すると、プログラマが明示的にコーディングしなくても、更新時刻チェックを
2006年10月22日00:55 カテゴリLightweight LanguagesWEB+DB PRESS javascript - element.innerHTML はなぜ速く見えるか 自分でこう書きながら、実は首を傾げていたのだけどやっとわかった。 404 Blog Not Found:WEB+DB PRESS vol.35 pp.57 まず速度ですが、innerHTMLは代入時にHTMLの構文解析が入るので、速度的にはDOM操作が有利です。 期待に反してそうでないのは、404 Blog Not Found:javascript - DOM vs innerHTML benchmark on MacBook Proでの指摘した通り。このあたりはamachangにちゃんと査読してもらった方がよかったのではないか? InnerHTMLは速くない。速く見えるだけだ。 その証拠として、以下
SEの進地です。 2007年1月に投稿した「Web 2.0的アプリのセキュリティ:機密情報にJSONPでアクセスするな」は多くの方にお読みいただきました。誤りも指摘され、元エントリーに改修を加えましたが、かなり読みづらい状態になってしまっています。また、JSON、JSONPのセキュリティに関する新たな話題もSea Surfers MLで議論されているのを読み、自分自身の認識や理解も変化しているので、このエントリーでもう一度JSON、JSONP(+JavaScript)に機密情報を含めることの是非と方策を整理、検討したいと思います。 ○JSON、JSONP、JavaScriptによるデータ提供時にセキュリティ対策上留意すべき特徴 JSON、JSONP、JavaScriptによるデータ提供時に留意すべき特徴としてあるのが、「クロスドメインアクセス可能」というものです。JSONPだけでなく、JS
2007年6月7日 はてなブックマークのコメントをうけて、「常にJSONP、JSON、JavaScriptに機密事項を含めないように」という主張を改め、「クロスドメインアクセスの対策をとっていない状態ではJSONP、JSON、JavaScriptに機密事項を含めないように」という主張に関して記述しました。 こんにちは、SEの進地です。 今回から週単位でWebアプリケーションのセキュリティに関するエントリーを書いていこうと思います。 僕自身、日々勉強して精進というところですので、もし何らかの誤りがあれば是非ご指摘ください。 つっこみ大歓迎です。 今回取り上げるのはWeb 2.0なアプリケーションでセキュリティ面で気をつけるべきことの一つ、機密情報にJSONPでアクセスするなです。 JSON(JavaScript Object Notation)はJavaScript(ECMAScript)の
La présence de pesticides dans l’eau est un problème de santé publique majeur. Ces substances chimiques, utilisées en agriculture pour protéger les cultures, peuvent se retrouver dans les nappes phréatiques et les cours d’eau, contaminant ainsi l’eau que nous buvons. Les dangers des pesticides pour la santé Les pesticides sont suspectés d’avoir des effets néfastes sur la santé, même à faibles dose
自分用のメモも兼ねてエントリー。JavascriptやらAjaxやらで何かやりたいときに便利そうなリンク集のまとめです。 Javascript Libraries 主要なライブラリーとエフェクト用の拡張機能、その他ツールなどです。まずはこちらからいろいろ試してみるのがよさげですね。 » Javascript Libraries Ajax Rain Ajaxの小技いろいろ集です。ちょっとしたスクリーンショット付きのこうしたリンク集は眺めていて楽しいですね。 » 485 + Ajax/Javascript/Dhtml examples and demos to download Mini Ajax こちらもAjax Rainと同様です。こちらも綺麗なサイトで眺めていて楽しいですよ。 » MiniAjax.com / A showroom of nice looking simple downl
The qooxdoo projectは5日(米国時間)、qooxdooの最新版となるqooxdoo 0.7を公開した。qooxdooはJavaScriptで開発されたAjaxフレームワーク。GNU LESSER GENERAL PUBLIC LICENSE Version 2.1およびEclipse Public License - v 1.0のデュアルライセンスのもとオープンソースソフトウェアとして公開されている。 0.7はqooxdooのメジャーリリースという位置づけ。以前のバージョンと互換性を確保しつつも、主要な部分の再実装や新しいコンセプトの導入などが行われている。多くの機能が追加された点も大きな特徴といえる。 0.7における主な変更点は次のとおり。 新しいクラス宣言シンタックスの導入 アドバンスドオブジェクト指向機能の導入 Java風インタフェースの導入 Ruby風ミックスイン
prototype.jsのAjax.RequestとForm.serializeを組み合わせる bookmark prototype.jsのAjax.RequestではAjaxによってサーバへリクエストの処理が行えます。そして、Form.serializeという便利な機能もあって、これはフォームの内容を、a=b&c=dのようなサーバに送信しやすい形にしてくれるものです。 コードを見てみよう bookmark <html> <head> <title>フォーム内容をシリアライズ - Form.serialize</title> </head> <body> <body> <form method="get" action="" id="form1"> 名前:<input type="text" name="name" id="d_name" value=""><br> メッセージ:<inpu
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く