【问题标题】:ASPMVC, $.getJSON, very slowASP MVC,$.get JSON,很慢
【发布时间】:2010-05-05 20:51:26
【问题描述】:

这是我第一次使用 JSON 的游戏,我很惊讶它的速度有多慢。

我很确定我遗漏了一些东西,如果有人可以提供帮助,我将不胜感激。

这是我的代码

$.getJSON('/localhost/CountryList', function (data)
{
   alert ("finished");
});

我的countryList 返回一个这样的数组

{"Code":"AF","Name":"Afghanistan"},
{"Code":"AX","Name":"Aland Islands"},
{"Code":"AL","Name":"Albania"},

等等……

我的数组的完整大小约为 6K,浏览器从我的本地开发 IIS 渲染它需要超过 1m 30s。

当我使用压缩时,大小变为 2K 但时间仍然是 1m 20s

JSON 这么慢正常吗?

【问题讨论】:

  • 不,绝对不是。检查 Firebug 需要这么长时间 - 是请求,还是等待服务器的响应?如果是第二个,那需要这么长时间?
  • 我不确定我是否在 FireBug 中查看正确的位置,当我右键单击事件时,我可以看到:0ms DNS 查找 1ms 连接 1ms 阻塞 0ms 发送 1m18s 等待 2ms 接收

标签: asp.net-mvc getjson


【解决方案1】:

您能否查看您在 Firebug 或 Chrome 的开发者工具对话框中的交互以了解时间都花在了哪些地方? AJAX 内容是如何生成的?它是服务器上的静态资源,还是有一些动态工作需要执行一些可能冗长的数据库魔法?是在等待 AJAX 结果,还是真的在渲染中?

此外,如果您在页面本身中本地托管数据(对于本练习而言是临时托管),渲染速度是否相当快?

【讨论】:

  • 当我将内容放入文本文件时,我可以立即从浏览器中打开它
  • 您是说当内容作为静态文件存在时,您可以通过 getJSON“即时”将内容拉入浏览器?或者你是说你可以简单地用浏览器打开文本文件?如果是前者,那么看起来 jQuery 或您使用 getJSON 没有问题。那么瓶颈就在您的服务器端代码中以生成内容。
  • 不,我的意思是用浏览器打开文本文件。在我的代码中,我会从我的数据库中生成数据,我可以通过调试器看到从发送到网络服务器到呈现到浏览器之间所花费的时间
  • 但是在那段时间发生了几件事......内容必须在服务器上生成,内容必须由浏览器获取,并且html内容必须基于该数据呈现。目前还不清楚(对我来说,无论如何)延迟到底在哪里。您采取了哪些措施将瓶颈隔离到这些区域之一?
  • 我想知道是否有任何工具可以帮助隔离这个瓶颈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-14
相关资源
最近更新 更多