2012-10-26 29 views
0

我有一個XML文件,我想它發送PHP頁面寫入到MySQL數據庫。性能明智最好的方式發送xml數據到php文件在c#

舉一個例子, 我有一個叫做data的類,它有很少的屬性。那麼這些對象的值保存在本地緩存的xml文件如下:

<data> 
    <value1></value1> 
    <value2></value2> 
    .......... 
</data> 

,所以我想將這些數據發送到MySQL數據庫。 我的服務器端使用PHP,我是新來的PHP。 那麼發送這些數據的最佳方式是什麼?

  1. 通過數據的訪問對象(C#)

字符串數據= 「& VALUE1 =」 + d.value1 + 「& VALUE2 =」 + d.value2發送這些值作爲參數.. ......;

2. 發送XML文件直接到PHP頁面,並在php文件讀取XML文件,並獲得所需的數據

什麼是發送這些數據的最佳方式? (性能明智)

回答

1

答案很可能是'它取決於'。

  1. 您的XML結構多麼複雜,以及它在服務器端(PHP)上解析它有多容易?如果XML本身相對簡單並且參數數量不可能大幅增加,那麼可以考慮將它們作爲URL的一部分發送。但是,如果XML將發生變化並變得更加複雜,那麼最終可能會以這種方式不斷髮明將XML轉換爲URL參數的自行車。

  2. 將XML直接發送到服務器端可能會更容易,因爲您不需要將XML轉換爲URL參數。此外,您無需關心XML的大小,而需要使用URL查詢參數 - URL不得超過2083 symbols

另外,如果您使用URL參數方法,請小心字符串連接 - 您需要轉義數據的值,例如,使用Uri.EscapeDataString方法。

性能方面,有三個方面來考慮:

  1. 如果沒有太多的URI的轉義和參數有相當瑣碎的值(即大多數/ ASCII字符),參數可能由於使用HTTP GET而不是HTTP POST以及較少量的數據傳輸,所以傳輸速度會更快。但是,轉換增益將被XML轉換爲參數的成本所抵消,儘管對於小型XML來說這可能忽略不計。

  2. 如果XML結構複雜且數據值爲任意長度,那麼在某些情況下,其轉換爲URL參數可能被證明是無效的,甚至是不可能的。如果最終使用HTTP POST而不是HTTP GET,那麼很難懷疑轉換爲參數會有什麼意義。

  3. 解析服務器端的XML可能比解析URL參數要慢。但是,這是值得懷疑的,需要適當的衡量。

最後,可能會推薦考慮一下 - 爲什麼這樣低級別的性能表現會讓您在開發中感興趣?你是否有一些性能問題,並發現瓶頸在於那個細節?見an excellent article about performance by Eric Lippert here。您最好直接使用最直接的解決方案(即最容易編碼和維護)並在以後測量性能問題。

+0

thanx for你的解釋:) – DevT

相關問題