2011-08-11 63 views
1

我嘗試創建html5白板。在白板中,使用svgcanavas js庫的內容是svgformat(就像文本一樣)。正在更新所有其他的白板內容誰已經加入會話這樣與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); 
?> 

The使用此白板一次最多隻能有20人。有沒有更好的方法來進行同步。 有沒有一種方法可以只檢測已經改變的行並單獨更新?,因爲文件大小不斷增加,並且需要更長的時間。

所以我想知道:

  1. 這是我能做到的最好的方法是什麼?
  2. 有沒有辦法只檢測到 在svg中更改的行,並單獨更新?
  3. 當20個人訪問同一個文件時,這項工作是否可以工作?svg.tmp
+0

我不能在這看到任何錯誤。雖然我會建議你也使用json – kritya

+0

已更新我的問題。現在我明白了爲什麼沒有人回答:)我不清楚。 – esafwan

+0

你有這個我可以叉的Git回購? – CAM

回答

1

1:是的,這是有關更多瀏覽器開始支持HTML5 WebSockets的唯一方法。只是不要調查服務器這麼多,大約每5秒應該是好的。
2:不,不是真的
3:是的,它應該。
希望有幫助!