≒ CatDogその後

今日訓練でJSON関係ちょっとやったので、その演習の時間に試行錯誤。ものはこれ

元のコードの分かってなかった部分を分解してみた。「一旦#dataに入れて、出して、加工して入れなおして、それから表示」なんてやってるから変な挙動をするんだと思って、受け取ったJSONを我ながら野暮ったいやりかたで分解して、出したり入れたり無し、一発で#dataに入れるように改造した。

  • JSONはすぐに受け取れてる(はず)。
  • とすればただの文字列なのだからおなじfunction内でやりとりするのに例の謎の「alert挿入」は必要ないはず。
  • もしかすればChromeでも見れるようになるかも!

で、1funnction化した。駄目だった。謎alertを入れないとtoo much recursionになる。つまりいつまでたってもJSONから配列に文字列を取り込めない。何で?

さらに途中のプロセスを整理したためなのか、イメージデータ取得に時間のかかる「Other」カテゴリが変になった。なぜかFlickrのsensorにひっかかったのがそのまま表示される。といっても面白写真が見れます、ってことじゃなくて、例の「This photo is currently unavailable」って白いスクエア整形されてないやつが出てくる。みっともないことこの上なし。

前のバージョン(現行か)のCatDogViewerだと「スクエア整形はちゃんと出る」→「クリックして拡大してみると見れない(This photo is currently unavailable)」って順番だったんで、推測すると、

  1. 投稿があるとだだ漏れでフィード流す。ナンバー(=url)は自動付加。
  2. 大雑把な検閲(形状認識とか)で分かり易い不正をはねる。とりあえず白画面にする。
  3. 次の投稿で同ナンバーは上書きされる。
  4. 第一段階の検閲をクリアしたものでナンバー確定。スクエアやその他規定のサイズに整形。派生ナンバー(=url)を(に)付加。
  5. 再検閲。有名人の顔が入っているなど版権ありそうなものをはねる。この場合、ナンバーは上書きされず、なぜかスクエアサイズは残ってる。ほかのサイズは白画面。

じゃないかと思いました。そんなに単純じゃないかな?

で、1と2は光の速さで行われてて、このCat~だと画像取得が早すぎて、3に行く前の画像を持ってきているのではないかと。ということは、これ以上スムーズにしたらもっとおかしくなるのか!

うーん。Chromeどころかレベルが後退しちゃいました。以上。