gpt4 book ai didi

asp.net-web-api - 与 XML 相比,JSON 序列化非常慢

转载 作者:行者123 更新时间:2023-12-01 23:55:33 25 4
gpt4 key购买 nike

我有一个需要从网络应用程序访问的 webapi 服务

如果我直接调用 webapi url(例如/api/scrccc/32),它会在不到 5 秒的时间内返回数​​据,但是当从 jquery 调用时,它需要超过 5 分钟(!!!)分钟

我的ajax调用是

j$.ajax({
type: "GET",
url: '/api/scrccc/' + id + '?dt=' + new Date().getTime(),
error: function (jqXHR, status, error) {
//....
},
success: function (data, status, jqXHR) {
//....
}
});

这发生在 javascript 控制台 (firebug) 打开或关闭时,以及在 Chrome 和 FF 中

有人知道为什么会这样吗?

编辑:

以下是 Chrome 中使用 Jquery 调用的时间:

Timimgs in Chrome - with jquery

以及在 Chrome 中直接访问地址栏中的 url 的时间

Timimgs in Chrome - direct url call

... 浏览器中的 timimgs 也带有时间戳

Timimgs in Chrome - direct url call with timestamp param

编辑 - 6 月 1 日

我意识到从 ajax 调用 webapi 和从浏览器的地址栏调用 webapi 是有区别的:- ajax 调用请求响应为 json- 浏览器以 XML 形式请求响应

所以我在 Postman 中测试了两个请求,分别使用 json 和 xml 响应,结果让我感到困惑:使用 xml 响应的请求花费了 1261 毫秒,而 json 响应花费了 47000 毫秒(!!!)

(Chrome 控制台中显示的时间是本地 IIS Express,而 Postman 中显示的最新时间是通过互联网在真实 Web 服务器上的真实应用程序,这就是它们不同的原因,但比例保持不变)

XML response

enter image description here

所以,确实,正如一些人所建议的那样,问题出在服务器端,但不是在提供数据的实际应用程序代码中,而是在序列化点。

我的Webapi是2.1(5.1.2版),Json.Net是6.0.3版(都是最新版)我没有使用任何特定 json 序列化程序的特殊设置,因此,据我所知,WebApi 使用 Json.Net。

知道什么会导致序列化时间出现如此巨大的差异吗?

谢谢

最佳答案

首先,感谢所有花时间抢劫这里的人。正如我在对 @adreno 的评论中发表的那样,问题出在首次访问时加载的昂贵的计算属性。

该属性在BL中定义的一个类中,在各个地方都有使用,所以一开始没想过要查。

为什么该属性被 XML 序列化排除在序列化之外?我不知道,而且由于时间限制,我既没有时间也没有兴趣进一步研究(因为它不是一个开放的 API,而且我们不需要 XML 输出)。

关于asp.net-web-api - 与 XML 相比,JSON 序列化非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23974404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com