8

我们刚刚推出了一个新的基于 ASP.NET MVC 的 web 应用程序,它可以在所有桌面连接和所有移动设备(如 iPhone 等)上正常工作。但是,当通过 3G 连接查看某些页面时(通过 3G加密狗在笔记本电脑上,或直接在移动设备上),提供一个空白的白色页面,没有任何类型的内容。看起来好像我们返回了一个空请求。

在某些代理网络上,我们遇到了类似的问题,他们说我们的请求太大。这是有道理的,因为它只影响某些页面,我假设移动网络提供商在他们身边运行各种代理服务器。

但是,我无法找到任何关于什么会构成太大请求的信息。我已经分析了其中一个页面,以下是一些我认为可能相关的统计数据:

HTML 内容大小: 33.04KB 压缩,50.65KB 未压缩
所有样式表的总大小(4 个文件): 32.39KB 压缩,181.65KB 未压缩
所有外部 JS 的总大小(24 个文件): 227.82KB 压缩,851.46KB 未压缩

对我来说,内容的压缩大小并不过分,但也许我错了。任何人都可以建议我可以做些什么来解决这个问题,因为我很难找到任何明确的信息。

4

2 回答 2

2

就 MVC 而言,3G 网络与 Wifi 没有什么不同。但是,移动设备可以缓存的文件大小是有限制的。在这种情况下,每次回发都会从服务器请求这些文件。

由于某些页面确实有效,因此我认为将问题隔离到特定的故障点而不是在野外搜索是个好主意。

您可以在 Firefox 或 Chrome 开发人员工具中使用 3G 加密狗和 firebug 轻松调试问题

  • 首先确保没有导致问题的 Java Script 错误
  • 确认 Javascript/css/html 文件确实已交付给客户端。(客户端上的萤火虫)。在服务器上检查 IIS 日志或 MS 网络监视器或创建一个 http 代理,您可以在其中监视流量。尝试任何你觉得舒服的。
  • 仅针对 css/java script/html 就有近 30 个请求,如果有图像,请求数可能会更高。在 3G 上完成所有这些请求可能需要很长时间。尝试捆绑 Java Script 文件并减少请求计数。浏览器对它们可以同时发出的请求数量有限制,这增加了所有时间(我相信 Firefox 可以同时发出大约 10 个请求)。
于 2012-05-16T03:28:48.483 回答
0

我们确实解决了这个问题,它取决于响应标头中 Set-Cookie 项的大小和数量。我们发现我们有一个错误,即标题中有近 100 个 Set-Cookie 项。解决此错误并减小值的大小修复了该问题

于 2014-07-10T16:14:28.110 回答