移動ホームその他お問い合わせ画面切替MobilePCホームスポンサーリンク2013年10月25日DropzoneJSのautoProcessQueueとprocessQueueの組み合わせは要注意はじめにWebブラウザのドラッグ&ドロップ領域にファイルを放り込めば、WordPressへ投稿できるような仕組みを作りたいと思い、とりあえず既存のライブラリを探すことにしました。調べたところ、Drag&Dropからアップロード処理まで行なってくれるDropzoneJSがよさそうでした。理由としては、対応するWebブラウザが多く、jsファイル1つで動作するところです。previews.drop時にprocessQueueメソッドを呼ぶと3回目にハングするDropzoneJSのサイトにある説明を見ながら、以下のようにざっくり書いてみました。falseとして、drop後にアップロードの確認を行うようにしました。3回目でFirefoxがハングしました。流れは、1回目は失敗(何も起こらない)、2回目は成功、3回目でハングです。デバッガで確認すると、1回目はファイル情報が登録される前にアップロードが実行されました。ファイルが未登録と判定され、実際には何も処理が発生していません。2回目は、2回目にドロップしたファイルではなく、1回目のファイルがアップロードされました。3回目で、Firefoxがハングアップしました。考えると、droppedじゃないので、ここでprocessQueue()を呼んではいけないですね。dropイベントとprocessQueueメソッドを分けるもう少し追ってみるとdropイベントが終わるとファイル情報が格納されていることが分かりました。この後にprocessQueue()を呼ぶと、問題なく動作したので、ドロップ処理とアップロード処理(processQueue)を別々にしました。最初のコードからdrop内のprocessQueue()を削除し、適当にボタンを作ってdrop後にprocessQueue()を実行するとうまくいきました。}});おまけドラッグ&ドロップやファイルアップロードで色々と見つけたのでリストアップ。jQuery.高機能すぎて使いにくいかも。使いこなせれば便利そうです。postとあったので試していません。何も問題はないようですが、一手間かかると面倒になります。UploadifyjQuery.uploadは、AjaxスタイルでファイルをアップロードするためのjQueryプラグインです。plugin上2つは、ファイルのアップロードのみです。おわりにドキュメントをしっかりと読みましょう。ファイルやフォルダのフルパスを取得するアース製薬の電池でノーマットはひどい新しいThinkPadトラックポイントキーボードはイマイチだと思うMacで使えるSQLiteクライアントスポンサーリンクMacのファイル更新監視ツールfswatchを使ってmarkdown等を自動コンパイル日本語(JIS)キーボードと英語(US)キーボード、どっちが好み?歯ブラシの世界Macで使えるスニペットツールMacでWebページを作成する。SandVox編MacでWebページを作成する。