タグ

ajaxに関するkorinのブックマーク (32)

  • AJAXでファイルダウンロード

    バイナリでもテキストでも、AJAX でリクエストしたら JavaScript で受けることになるので、ブラウザにファイルをダウンロードさせるように処理を作る必要がある。 Blob オブジェクトはファイルに似たオブジェクトで、immutable な生データです。データを表す blob は必ずしも JavaScript ネイティブなフォーマットではありません。File インターフェースは Blob を基礎にしており、その機能を継承する一方で、ユーザのシステム上のファイルをサポートするための機能を拡張しています。 https://developer.mozilla.org/ja/docs/Web/API/Blob とのことです。レスポンスから Blob オブジェクトを作って、createObjectURL すれば、ダウンロード可能なURLを生成する事ができます。 よくありがちな、CSVデータを管

    AJAXでファイルダウンロード
  • Ajaxの嫌いだった部分をJsRenderで心地良くした - Goldstine研究所

    1. はじめに ぼくはフロントエンド業ではありません。 jsはあまり好きではありません。 そしてAjax通信後にhtmlアウトプットする際にjsの変数の中にhtmlを書いていくソースコードがもっと好きではありません。(後述) それをJSテンプレートエンジンを使ってシンプルにしてみたって話です。 (JsRenderの使い方を書いたものではありません。) 2. Ajaxが嫌いだった理由 Ajaxはユーザ体感的にはいいのだけれど、 Ajaxの結果受け取ったjsonなどのデータを使ってhtmlを出力とかやるとソースコードが煩雑になるので嫌いだった。 例としてAjaxで/xxxxxにリクエストを投げて、その結果(jsonデータ)を使ってhtmlを出力するものを考えると。 /* jsonデータは下記が返ってくるとする [ { id: '1', name: 'らーめん', text: 'らーめんは

    Ajaxの嫌いだった部分をJsRenderで心地良くした - Goldstine研究所
  • Diggの高速化技術MXHRを解説してみる - by edvakf in hatena

    これのこと。 AJAXサイトをスピード化するMXHR - huixingの日記 Digg the Blog » Blog Archive » DUI.Stream and MXHR どこにも解説が無かったので、詳しく読んだ。 上の記事から引用すると、「サーバーとクライアント間で、ただひとつだけのHTTPコネクションを開く。これによりサーバーがページのどのパーツを先行して読み込むかをコントロールすることが可能になり、ユーザーにとってはページ読み込みがほぼ一瞬で済むことを意味する。」という技術。XMLHttpRequest を使って複数のデータを受信する場合に効果がある。 まずデモから デモ1は10個のテキストをダウンロードして表示するもの。 デモ2は300個の画像をダウンロードして表示するもの。 どちらも左側 (MXHR 有効) が完了した後に右側 (MXHR 無効) を開始するので驚かない

    Diggの高速化技術MXHRを解説してみる - by edvakf in hatena
  • Ajax:画像を取得して表示する(Firefox): Script雑感

    XMLHttpRequest を使って取得したバイナリーデータ(画像)をブラウザに表示してみました。firefox のみ。 JavaScriptでバイナリを扱う & XPCOMを使ってローカルのデータベースにアクセス with Firefox の記事を読んでいて、そういや Ajax ではどうなん?と思ってやってみた。 ■ 他に参考にしたのは以下の記事。 [comp]JavaScriptでバイナリファイルの中身にアクセスできた ■ base64 エンコードには下記のコードを使いました。 JavaScript で Base64 の符号化と復号化 <html><head> <script type="text/javascript" src="base64.js"></script> <script type="text/javascript"> load_url = function(url)

    korin
    korin 2015/06/25
    xhrレベル2が無い状態だと、textとみなす必要がある。となんだか、昔のLANG=CにEUC詰め込んだようなイメージか。XHR2があればきれいにできる。
  • jQueryを使わないでAjax通信をするオブジェクト - Ando.report(); // JavaScriptをもっと勉強したいブログ。

    AjaxのためだけにjQueryを使うのは少し重いので、カスタマイズする前提で作ったオブジェクトをスニペットとして掲載しておきます。 /* require Prop.js */ var Ajax = { get: function (params) { var key; if (!params.url) { throw 'URLを指定してください'; } this.method = new Prop('GET'); for (key in params) { this[key] = new Prop(params[key]); } this.sendRequest(); }, post: function (params) { var key; if (!params.url) { throw 'URLを指定してください'; } if (!params.data) { throw '送信す

    jQueryを使わないでAjax通信をするオブジェクト - Ando.report(); // JavaScriptをもっと勉強したいブログ。
  • SinatraとjQueryでおよそ100行で作るAjax掲示板アプリケーション - 旧gaaamiiのブログ

    Web2.0と言われ始めた時代に、Ajaxという手法が広まりました。今ではAjaxを使っていないウェブアプリケーションを探すのが難しいくらい、Web開発の現場には浸透していると思います。もちろん、Ajaxを知らなくてもウェブアプリケーションは作れますが、これは使い心地を意識すれば自然と必要になってくるものです。 この記事では、実際に簡素な掲示板アプリを作りながら、現在ほとんどのウェブアプリケーションで使われているAjaxという手法を紹介していきます。ちなみに、タイトルの「100行で」というのは今回書いたapp.rb、index.erb、schema.sqlの3つのファイルのトータルがおよそ100行だという意味です。数字をタイトルに入れると読んでもらいやすいという話をどこかで聞いたので入れてみました。 ソースコードはGithubにも置いておきました。 gaaamii/ajax_sample

    SinatraとjQueryでおよそ100行で作るAjax掲示板アプリケーション - 旧gaaamiiのブログ
  • クライアントサイド JavaScript のパフォーマンス改善には backburner.js が便利! - tricknotesのぼうけんのしょ

    DOM 処理や Ajax など、JavaScript が外の世界とやり取りする部分というのは、一般的に待ち時間を多く必要とします。 パフォーマンスを改善しようと思った時に、ロジック部分でコツコツと節約するより、まずコストが高い処理を行わないようにするということで、驚くほどの効果を経験をされたことはありませんか? 今までパフォーマンス測定をされた方であればピンとくる部分があることと思います。 そんな時に役に立つのが、今回ご紹介する backburner.js です。 ebryn/backburner.js - GitHub backburner.js って? backburner.js とは Ember.js の run loop モジュールから切りだされたとても小さなライブラリで、短時間に集中的に発生するメソッド呼び出しの回数を制限したい場合などに利用することができます。 backburn

    クライアントサイド JavaScript のパフォーマンス改善には backburner.js が便利! - tricknotesのぼうけんのしょ
  • なぜGoogleはJSONの先頭に while(1); をつけるのか - Qiita

    Stack Overflowに面白い質問があったので紹介する javascript - Why does Google prepend while(1); to their JSON responses? - Stack Overflow 質問 Googleのサービス内で使われるJSONの先頭に while(1); てついているのは何故? 例えばGoogle Calendarではカレンダーを切り替えるときに以下のような内容のデータがサーバから返される。 while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],['remindOnRespondedEventsOnly','true'],['hideInvitations_remindOnRespondedEventsOnly','false_true'],['C

    なぜGoogleはJSONの先頭に while(1); をつけるのか - Qiita
  • PHPのイタい入門書を読んでAjaxのXSSについて検討した(2)~evalインジェクション~ - ockeghem(徳丸浩)の日記

    昨日の日記の続きで、Ajaxに固有なセキュリティ問題について検討します。タイトルはXSSとなっていますが、今回紹介する脆弱性はXSSではありません。 作りながら基礎から学ぶPHPによるWebアプリケーション入門XAMPP/jQuery/HTML5で作るイマドキのWeから、Ajaxを利用したアプリケーションの概念図を引用します(書P20の図1-23)。 Ajaxのアプリケーションでは、XMLHttpRequestメソッド等でデータを要求し、サーバーはXML、JSON、タブ区切り文字列など適当な形式で返します。ブラウザ側JavaScriptでは、データ形式をデコードして、さまざまな処理の後、HTMLとして表示します。以下に、Ajaxのリクエストがサーバーに届いた後の処理の流れを説明します。 サーバー側でデータを作成、取得 データ伝送用の形式(XML、JSON、タブ区切り文字列等)にエンコード

    PHPのイタい入門書を読んでAjaxのXSSについて検討した(2)~evalインジェクション~ - ockeghem(徳丸浩)の日記
  • node.js モジュール ajmax の公開

    東京Node学園祭2012 アドベントカレンダー 14日目の記事です。イベントの告知の意味も含めて、毎日だれかが1つづつ node.js についてブログで書く、という企画だそうです。 そこで題ですが、github に ajmax という node.js モジュールを公開しました。npm にも登録してあるので、"npm install ajmax" でインストールが可能です。 詳しくは readme ファイルに書いてありますが、英語なので簡単に解説すると、AJAX(eye candy 的な AJAX ではなくて、実際に非同期にデータをサーバーから取得してページの一部をアップデートするタイプの AJAX) を活用した one-page web application を作るための micro MVC framework です。 これまでいくつか AJAX を駆使したアプリを作って来ましたが、

  • Operaの場合XHR2対応してないからiframeでクロスドメインでPOSTする - 憧れ駆動開発

    ああ哀しいかなOpera使い JavaScriptTwitterのOAuthを取り付けて通信する方法 - 憧れ駆動開発 これの続き。OperaだとXHR2対応してない(Operaの場合はこういうところが厳密すぎる)ので、結局Operaの場合iframeにPOSTすることにした チラ裏に移動させた。内容としては 要はPOSTリクエストするときのフォーマットはXMLにして、display:none な iframe 内でXMLをひらく、ということ。OperaはXMLを自動的にパースして開いてくれるから、それを使う

    Operaの場合XHR2対応してないからiframeでクロスドメインでPOSTする - 憧れ駆動開発
  • JavaScriptでCGIの呼出し・・・???

    > JavaScriptで他のサーバにあるCGIにデータを渡す方法です。 他のサーバーの同じドメインなのか、他のサーバーの別のドメインなのかで対処法は変わります。 別のドメインであればAjaxは使えません。(同じサーバーでも別のサーバーでも使えません) DOMを使ってscriptエレメントを生成し、src属性にデータを付加して、ドキュメントに挿入するか(いわゆるJSONP) <form>を使って送信する必要があります。 送信して終わり(受信なし)であれば、Imageオブジェクトのsrcプロパティかimgエレメントのsrc属性に付加することでも送信できます。 <form>のtargetをインラインフレームやopen()で開いたウインドウにしておけば、バックグラウンドで(非同期で)送信することもできます。(というか非同期を強制されます) 同一ドメインならAjax、JSONP、<form>、<i

    JavaScriptでCGIの呼出し・・・???
  • jQueryを使った別ドメインへのAjax通信

    同一ドメイン内のAjax通信は問題なくできたのだが、 別ドメインへのAjax通信はクロスドメインの制限にひっかかりできなかった。 なんとかできないものかとあちこちのサイトを見たり テストをしたりしてようやく出来るようになったのでメモしておく ■やりたいこと クライアントから別ドメインのサーバへPOST サーバ側で処理を行い、処理結果を返す クライアントでは処理結果を受け取って表示する。 サンプルは2つのフォームの値を足して結果を返すだけの簡単なもの ■サーバ側PHP [php] <?php // クライアントからのPOSTを受け取る $val = $_POST[‘val’]; $val2 = $_POST[‘val2’]; // 何らかの処理(サンプルなので加算するだけ) $result = $val + $val2; // 下記をレスポンスヘッダーに含める header("Access-

  • http://www.moemoekyun.org/bon/wiki/wiki.cgi?page=Ajax%A4%CB%A4%E8%A4%EBPOST%C4%CC%BF%AE%BC%C2%C1%F5

  • Ajax - Goodbye, JSONP. Hello, Access-Control-Allow-Origin : 404 Blog Not Found

    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ノードを追加した時に、単

    Ajax - Goodbye, JSONP. Hello, Access-Control-Allow-Origin : 404 Blog Not Found
  • 動的にiframeを生成してクロスドメインなPOSTを投げる方法 - Okiraku Programming

    ※2015/3/15追記 2015/2月ごろから記事の方法はTwitterでの実利用は困難になりました。レスポンスヘッダに"content-disposition: attachment; filename=json.json"が追加されるようになったため、json.jsonというファイルとしてダウンロードが行われてしまいます。現状でこれを回避する方法はないと思われ、POSTはサーバ経由で行うしかなさそうです。(JSONPを利用したGETはこのヘッダがあっても可能です。) =====追記以上==== twicli開発メモ - Okiraku Programming で、iframeをtargetに指定してformを送信することで、外部ドメインに対してPOSTメソッドを発行する方法を書きました。が、iframeをあらかじめ準備する必要があったため、複数のクエリを同時発行できないといった欠点

    動的にiframeを生成してクロスドメインなPOSTを投げる方法 - Okiraku Programming
  • JavaScript だけでクロスドメインで POST メソッドを送る方法

    JavaScript のみを使って、クロスドメインを実現しつつ POST メソッドでリクエストを送信する方法について解説します。 ここで解説する方法にはこんな特徴があります。 (2009-10-30 追記) iframe の unload のタイミングについて、重大な不具合がある可能性に気づきました。Chrome/Firefox において、2度イベントが発生している可能性が高いです。unload イベントを使わない場合は無関係です。結論が分かったら修正版をこのページで公開します。 (2010-01-29 追記) Chrome は大丈夫そうです。Firefox もカウンタ or フラグを使ってイベントを記録すれば大丈夫ぽいです。ちゃんと直せて無くてすいません。 XMLHttpRequest では不可能な、クロスドメインによるポストを実現している。 元になるページの文字エンコードの種類にかかわ

    JavaScript だけでクロスドメインで POST メソッドを送る方法
  • PHPのイタい入門書を読んでAjaxのXSSについて検討した(1) - ockeghem's blog

    このエントリでは、あるPHPの入門書を題材として、Ajaxアプリケーションの脆弱性について検討します。全3回となる予定です。 このエントリを書いたきっかけ twitterからタレコミをちょうだいして、作りながら基礎から学ぶPHPによるWebアプリケーション入門XAMPP/jQuery/HTML5で作るイマドキのWeというを読みました。所感は以下の通りです。 タレコミ氏の主張のように、書はセキュリティを一切考慮していない 主な脆弱性は、XSS、SQLインジェクション、任意のサーバーサイド・スクリプト実行(アップロード経由)、メールヘッダインジェクション等 脆弱性以前の問題としてサンプルスクリプトの品質が低い。デバッグしないと動かないスクリプトが多数あった 上記に関連して、流用元のソースやデバッグ用のalertなどがコメントとして残っていて痛々しい 今時この水準はないわーと思いました。以前

    PHPのイタい入門書を読んでAjaxのXSSについて検討した(1) - ockeghem's blog
  • pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ

    pjaxの前にpushStateとは AjaxとjQueryの説明は不要として、pushStateとはなんぞや。 pushStateを使ってブラウザの履歴に対する操作をし、HTMLの一部のみを書き換える動作でもブラウザの戻る/進む機能を実現できる方法のひとつ。Ajaxなページを再現し、かつURLを見慣れた方法で自然にpermalinkを表現できる。 有名なところではGitHubで使われてるアレ。 hash fragment (/#!/) ブラウザの履歴を機能させるため、URL の fragment (#) を使ってAjaxなページを実現する方法。一時期もてはやされた感があるが、さらなる「#!」URL批判 - karasuyamatenguの日記 など合理的な反論があり、これから導入するのはためらわれるところ。 有名なところではTwitterで使われているあの厄介者。 pjaxとは pjax

    pjax こそが pushState + Ajax の本命 - punitan (a.k.a. punytan) のメモ
  • PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ

    HTTPレスポンスをajaxでストリーミング的に受け取りたいとき、要するにHTTPストリーミングをしたい時には、Transfer-Encoding: chunkedなレスポンスを生成してやるとよい。こうするとAjaxではHTTPレスポンス全体を受け取るのを待たずに、レスポンスの中身にアクセスすることが出来るようになる。従って、一つのHTTPコネクションでサーバ側から任意のデータを好きなタイミングでプッシュすることが出来る。 コード 一秒ごとに生成されるJSONをストリーム的に受け取るデモのコードが以下。 <?php // push.php function output_chunk($chunk) { echo sprintf("%x\r\n", strlen($chunk)); echo $chunk . "\r\n"; } header("Content-type: applicati

    PHPとJavaScriptでHTTPストリーミングする話(Transfer-Encoding: chunked編) - id:anatooのブログ
    korin
    korin 2011/05/30