2012-02-20 5 views
0

こんにちはを表示/ユーザが現在編集しているかどうかの確認、のコラボレーションツールの構築 - の要素をドラッグすると、実際にいくつかのアイデアをした後、ダイアログ

私はドラッグを構築していますnを人々のために(ちょっとムードボードなど)のコラボレーションツールをドロップコラボレーションするアイデアを投稿してください。すべてのAJAXによってJqueryのUI、PHP/MySQLの処理位置とデータストレージとJqueryによって供給されます。私の質問は、私は2人のユーザーがいると言います。ユーザー1は画像をドラッグしてサイズを変更し、移動します。ユーザー2は同じ画像をドラッグし、ユーザー1は画像の移動を表示し、ユーザー2は画像を表示します。

ユーザ1のajaxコールやその編集やドラッグを検出して、「編集中」と言っているダイアログや、ユーザ2の行に沿ったものがあると言うことができますか?もしそうなら、私はこれについてどうやって行くのですか?

私のおしゃぶりは意味がありますか?私は私のポイントを説明するのに役立つ画像を添付しています。

事前に感謝します。 enter image description here

+0

はどのようにして、現在のクライアントにアップデートを送信扱うのですか?ポーリングを使用していますか? – TheShellfishMeme

+0

私はそれを行う唯一の方法は、ユーザー1のウィンドウが常にx時間ごとにサーバーの変更をポーリングするようにすることだと思います。ウィンドウにフォーカスがあるときに制限して、バックグラウンドウィンドウで無期限に行うことができます。 – Mike

+0

コメントの皆様に喜んで頂戴します! – ChrisSherwood

答えて

1

あなたはドラッグ可能

$(".selector").draggable({ 
    start: function(event, ui) { ... } 
}); 

の開始イベントを使用し、他のユーザーのためにドラッグするためのアイテムをロックすることができます。列 "draggedBy"を作成し、現在ドラッグしているユーザー名を入力します。それ以外の場合はNULLを入力します。

この方法が欲しい場合は、ロックを所有しているユーザーが切断された場合、アイテムを永久にロックしないように、数秒のタイムアウトを設定することができます。 2番目の列のDraggingStartedAtを作成し、その中に現在のタイムスタンプを入れることができます。 MAX_LOCK_TIMEよりも古くなくても、おそらく10秒かそれ以上でない場合は、このロックを気にしてください。

あなたはより複雑なものが必要な場合は、多くのロック方法がそこにありますWikipedia: Lock

+0

ドラッグを止めるという選択肢を冷やすことは、私が考えていたものの、それを誰が実装するのか不明でした。これは右方向の歓声の大きな一歩のようです! – ChrisSherwood

+0

あなたはおそらく他の人がまだ試してドラッグしているかもしれないし、彼らの前に移動しているアイテムが何であっても、他のドラッグを防ぐ必要があったでしょう。ユーザーを普通のものに信用しない;) – BenOfTheNorth

+0

@Ben Griffiths - ええとユーザーは変な獣です! – ChrisSherwood

関連する問題