Asp.net Azure网站上脚本/样式的长等待(TTFB)时间
我在Azure网站上遇到了这个有趣的问题。我的网站使用4个脚本文件和3个样式文件,每个文件都缩小了。它们没有那么大,最大的有近200kbs。网站已经启动。Azure的“始终打开”选项已打开。当我调用WebApi获取数据时,它会返回那么。。。您的站点存在两个主要问题:Asp.net Azure网站上脚本/样式的长等待(TTFB)时间,asp.net,asp.net-mvc,azure,azure-web-app-service,Asp.net,Asp.net Mvc,Azure,Azure Web App Service,我在Azure网站上遇到了这个有趣的问题。我的网站使用4个脚本文件和3个样式文件,每个文件都缩小了。它们没有那么大,最大的有近200kbs。网站已经启动。Azure的“始终打开”选项已打开。当我调用WebApi获取数据时,它会返回那么。。。您的站点存在两个主要问题: 您正在使用AZURE-一种价格昂贵但性能较差的服务。。。。别问我为什么人们认为这是一个好服务 您正在将客户端文件与服务器文件并排存储。。虽然服务器文件应该存储在特定的服务器中,但客户机文件实际上可以从。。。到处 > -请使用CDN
<> > -请使用CDN(或任何其他服务器)为您的客户端文件(主要是CSS和JS,您也可以考虑移动字体和图像)
我猜是AZESS总是在上面。
如果它的工作原理与CloudFlare提供的类似,那么它实际上会代理请求并尝试缓存它。
根据Azure端此缓存的具体实现,它可能会等待脚本输出完成以缓存/验证缓存,然后将其传递到浏览器
您可能有机会检查缓存配置,并在可能的情况下禁用脚本的“始终打开”。脚本和样式是静态文件,在发送到客户端之前,默认情况下是压缩的(您可以使用HTTP头“content encoding”:gzip对此进行检查)。因此,TTFB由网络延迟、浏览器HTTP通道调度和来自服务器的静态文件压缩时间组成 另一方面,Web API数据是动态数据,默认情况下不压缩,因此其TTFB可能小于静态文件的TTFB
但是,您不需要关闭静态压缩,否则TTFB将最小化,但内容传输时间将延长。实际上,您不需要担心TTFB,请参阅更多信息:虽然静态文件已缓存,但浏览器仍会发出带有if modifies-since头的请求(这将导致304) 虽然它不需要下载实际内容,但仍然需要等待RTT+服务器思考时间才能继续 我建议两件事:
祝你好运 我完成了在Azure存储上存储文件并通过Azure CDN为其提供服务的工作。它提供了快速的响应,而且不需要任何成本。每次发布时,我都会通过Gulp在预构建事件中将它们添加到blob中。来源: 正如您在前面看到的,IIS 7缓存静态文件的压缩版本 文件夹。因此,如果一个静态文件的请求到达,该文件的压缩 版本已在缓存中,不需要压缩 再说一遍 但是如果缓存中没有压缩版本呢?iis7会吗 然后立即压缩文件并将其放入缓存?答案 是,但仅当文件经常被请求时。不 压缩仅偶尔请求的文件,IIS 7将保存 CPU使用率和缓存空间 默认情况下,如果文件是 每10秒请求两次或更多次 因此,向用户提供未压缩版本的javascript文件的原因是,它不符合压缩的默认阈值;换句话说,javascript文件在10秒内没有被请求2次 要控制这一点,我们必须在控制压缩的
元素上更改一个属性:frequentHitThreshold
。为了在请求文件一次时对其进行压缩,请将
元素更改为如下所示:
<serverRuntime enabled="true" frequentHitThreshold="1" />
如果您有许多javascript文件正在被提供,并且您经常有用户,那么这将稍微影响您的CPU性能,但是如果您有足够多的用户通过压缩这些文件来影响CPU,那么它们可能已经被压缩和缓存了 DenverCoder9你发现了什么?你看到了什么?请提供更多关于你的情况的信息。您使用的是哪个版本的asp.net mvc?有任何配置吗?这种情况是否也发生在localhost中,还是仅发生在Azure上?@ManosPasgiannis用于仅限赏金的Azure、最新的MVC(不是vNext),但文件是静态的,不通过它提供服务。因此,根本不提供文件服务?如果是这种情况,是所有文件类型都会发生这种情况,还是某些文件类型都会发生这种情况?您对这些文件使用捆绑包吗?请查看它们都是压缩的。