日曜日, 3月 10, 2013

stonewall開発日記11

exampleを改修してLoadNextボタンを押すと継ぎ足しできるようにした。今のexampleの処理の流れは

  1. LoadNextをクリックする

  2. Tumblrから次の20件を取ってくる

  3. 受け取ったデータを#containerに追加

  4. Stonewallで#container内の要素を全て並び替え直す


  5. となっている。「全て並び替え直す」というところはStonewallのインスタンスを作り直しているからなのだけど、既に並んでいるものをもう一度並べ直すのは無駄だし、数が増えるごとにその無駄が増えるので、追加した要素だけを並べるようにしたい。
    ということでadd()とremove()をつけることにした。並べる要素はDOM Elementのコレクションになっているので、いったん配列に変換して扱うようにしてある。まだ実装していないけど、任意の要素を削除したり、任意の位置に追加できるようにしたい。
    ただ、現状のaddやremoveは「Stonewallの管理下に入れる」「Stonewallの管理下から外す」ということでしかない。なのでaddしただけでは表示されないし、removeしただけでは表示が残ったままになる。単純に位置の計算だけを行うようにして、DOM操作を行わないようにするか、要素を追加したり削除することも含めて色々面倒を見るようにするか、考え直す必要がある。

    0 件のコメント: