2012-10-26 25 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

相关问题