带有Knockoutjs绑定的HTML网站存在性能问题

时间:2013-04-01 04:55:30

标签: azure knockout.js datatables

我正在使用客户端的纯HTML CSS网站,该网站使用Knockoutjs与JSON数据集进行数据绑定。对于表,我使用了Datatables库。

我在Windows Azure网站上托管了该网站。

以下是网站的链接:http://bit.ly/(REMOVED由于它是自信的)

加载网站需要大约4秒钟,即使我已经将CDN用于常见的JS库。

它不应该有那么多的加载时间。我无法在这里找到罪魁祸首。我从4个不同的数据集中获取数据。它会影响性能吗?或者Windows Azure数据中心存在问题,从Azure服务器获取响应需要一段时间。 Azure是罪魁祸首吗?

您可以在上面给出的网站链接上检查页面加载时间。

任何帮助将不胜感激。

解决方案:

使用

代替使用同步调用
$.getJSON(url, function(data){
 //whole knockoutjs logic and bindings
}

1 个答案:

答案 0 :(得分:1)

同步加载所有模型.js文件(以patientMedicationChart-Index.js开头)(在该文件中设置async:false)。这意味着浏览器必须等待加载每个脚本文件,然后再继续加载下一个脚本文件。

我计算了大约10个文件加载,就像你的演示一样,(对我来说)每个加载大约200ms(大约95%的200ms用于等待响应,这似乎也很慢;这可能是一个Azure的服务器问题)。因此,加载这些文件所花费的时间已经是2秒,并且只有在加载所有这些文件后,才会触发页面的ready事件。

可能有理由想要同步加载这些文件,但事实上,这会导致整个页面的大部分加载时间。