まとめてDM〜を作ってて知ったjQueryとAjaxについての何某

jQuery

  • jQueryCSSセレクタとして:inputを入れた場合はtextareaタグも拾えるが、$.serialize()でシリアライズする場合はinputタグだけ
  • textareaを含むformを通常通りサブミットする場合と、formをCSSセレクタで選択してやって、$.serialize()した値を、$.post()メソッド等のAjax系メソッドにdataとして渡した場合では動作が異なる。
    • (textareaの値が抜けるため)
  • jQueryAjax系メソッドは凄くよく出来てる。
    • よくやる事はちょー簡単、そこから外れても急にめんどくさくなるんじゃなくて、段階的に複雑になっていく感じ
      • $.get()、$.post()、$getJSON()などはちょー簡単
      • $.ajaxではoptionでいろいろ指定できるが、必要なのだけ書けばいい
      • リクエストヘッダを弄りたいときは、beforeSendで送信前のXMLHttpRequestを引数でもらっていろいろやる用の関数を設定できるので御自由に
        • そこ以外はラクチンなまま

POST→リダイレクトというようになっているWebページをAjaxで叩く場合の問題

裏でそこそこ大き目の動的コンテンツを受け取ることになるので、

  • サーバに負荷をかけてしまう
  • 待たされる

などの問題が発生してしまう。
解決案として、リクエストヘッダのMax-Forwardsに0を設定してPOSTすることを試みたが、
エラーになってしまうので目的を果たせず。
302を受け取った後、レスポンスヘッダのLocationをシカトできれば万々歳。
今のところその方法は分からず。
そもそもそんな方法はないので、サイトじゃなくてAPIを叩けということなのかもしれない。