Just My Life & My Work

不同步處理(Asynchronous processing)有很多好處,然而在發展程式階段時常有意想不到的狀況,剛開始接觸ajax的我,只知道GoogleFacebook等優質網站的服務有用到這招,吸引非常多人使用它們的服務,現在有機會碰網路程式語言,當然要一探究竟此技術的內涵!

在這裡就先紀錄可立即看到的頁面程式運作的過程,來瞭解表面和內部的差異,進而思考如何解決不同步處理所產生的問題。

server.php加入:

$json =  $jstree->{$_REQUEST["operation"]}($_REQUEST);
echo $json;
$fp = fopen('undefined.txt', 'a+');
fwrite($fp, print_r($_REQUEST, true));
fwrite($fp, $json);
fclose($fp);

isTree v.1.0 – Demo.html顯示:

Asynchronous processing

undefined.txt新加入的內容:

Array
(
    [operation] => create_node
    [id] => 5
    [position] => 0
    [title] => aa
    [type] => folder
)
{ "status" : 1, "id" : 23 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 0
    [title] => Dashboard
    [type] => default
)
{ "status" : 1, "id" : 24 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 1
    [title] => Assets
    [type] => default
)
{ "status" : 1, "id" : 25 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 2
    [title] => Sequences
    [type] => default
)
{ "status" : 1, "id" : 26 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 4
    [title] => Shots with Cannon
    [type] => default
)
{ "status" : 1, "id" : 27 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 5
    [title] => Notes
    [type] => folder
)
{ "status" : 1, "id" : 28 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 6
    [title] => Schedule
    [type] => folder
)
{ "status" : 1, "id" : 29 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 3
    [title] => Shots
    [type] => default
)
{ "status" : 1, "id" : 30 }Array
(
    [operation] => create_node
    [id] => 23
    [position] => 7
    [title] => Versions and Playlists
    [type] => folder
)
{ "status" : 1, "id" : 31 }Array
(
    [operation] => create_node
    [id] => 28
    [position] => 0
    [title] => All Notes
    [type] => default
)
{ "status" : 1, "id" : 32 }Array
(
    [operation] => create_node
    [id] => 29
    [position] => 0
    [title] => All Tasks
    [type] => default
)
{ "status" : 1, "id" : 33 }Array
(
    [operation] => create_node
    [id] => 29
    [position] => 1
    [title] => All Tasks by Assigned
    [type] => default
)
{ "status" : 1, "id" : 35 }Array
(
    [operation] => create_node
    [id] => 29
    [position] => 2
    [title] => All Tasks by Link
    [type] => default
)
{ "status" : 1, "id" : 34 }Array
(
    [operation] => create_node
    [id] => 31
    [position] => 0
    [title] => All Playlists
    [type] => default
)
{ "status" : 1, "id" : 36 }Array
(
    [operation] => create_node
    [id] => 31
    [position] => 1
    [title] => All Versions
    [type] => default
)
{ "status" : 1, "id" : 37 }

可見我加入aa這個專案之後,在Demo顯示為正確順序,然而在txt裡的資料卻呈現不正確順序資料! Sequences->Shots->Shots with Cannon,Shots變成到後頭才處理。 註:[id]表示父節點id,"id"代表當前節點的id。 [operation]:節點操作、[position]:兄弟節點位置、[tilte]:節點名稱、[type]:節點型態。

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲