2011-08-11 9 views
1

html5ホワイトボードを作成しようとしています。ホワイトボードでは、コンテンツはsvgformat(テキストのみ)にあり、svgcanavas jsライブラリを使用しています。このJquery&phpとテキストを共有

function change() { 
var svg = $('#svgcanvas').html(); 
//$('body').html(hi); 
$.post("php/update.php", { svg: svg }); 

} 

setInterval("change()",100); 

PHPのようなセッションに参加している他のすべての間でホワイトボードの内容を更新していますと、この

<?php 
$svg = $_POST['svg']; 
$myFile = "svg.tmp"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$stringData = $svg; 
fwrite($fh, $stringData); 
fclose($fh); 
?> 

とクライアント側のjs

function get() { 
$.get('php/get.php', function(data) { 
    $('#svgcanvas').html(data); 

}); 

} 

setInterval("get()",100); 

とPHPのようなものです

<?php 
$file = "svg.tmp"; 
$fh = fopen($file, 'r'); 
$theData = fread($fh, filesize($file)); 
echo $theData; 
fclose($fh); 
?> 

このホワイトボードを使用して一度に最大20人に限ります。同期を行うより良い方法はありますか? 変更された行だけを検出して更新する方法はありますか?となります。これは、ファイルサイズが増加し続けるため、処理に時間がかかるためです。

だから私が知りたい:

  1. は、これは私がそれを行うことができます最善の方法ですか?
  2. 変更された行だけをsvgで検出して更新する方法はありますか?
  3. これは、20人の同じファイルにアクセスしているときに機能しますか?svg.tmp
+0

私はこれで何かエラーを見ることができません。私もあなたに助言をしますが、jsonを使用してください – kritya

+0

私の質問を更新しました。今私は誰も答えた理由を得た:)私は明確ではなかった。 – esafwan

+0

私はフォークできますか? – CAM

答えて

1

1:これは、より多くのブラウザがHTML5 WebSocketをサポートし始める唯一の方法です。サーバーをあまりポーリングしないでください。約5秒ごとに正常に動作するはずです。
2:いいえ、実際にはありません
3:そうです。
希望に役立ちます!

関連する問題