jQuery - 如何防止Weather API减慢我的网站速度?

时间:2014-06-03 18:52:05

标签: jquery weather-api

我最近在我的网站上添加了天气预报。脚本如下:

页脚之后:

<script type="text/javascript" src="../js/weather.js"></script>

jQuery:

jQuery(document).ready(function($) {

$.ajax({
type: 'GET',
url: "http://api.worldweatheronline.com/free/v1/weather.ashx?q=Gstaad&format=json&num_of_days=5&key=key",
async: false,
contentType: "application/json",
dataType: 'jsonp',
success: function (response) {
    var weather = response.data.weather;
    var weekdays = ["SUN", "MON", "TUES", "WED", "THU", "FRI", "SAT"];
    var ids = ['#first_', '#second_', '#third_', '#fourth_', '#fifth_'];
    for (var i = 0; i < weather.length; i++) {    

        $(ids[i]+"img").attr('src', "http://swissskiresorts.com/wp-content/themes/swiss-ski-resorts/images/day/"+weather[i].weatherCode+".png");
        $(ids[i]+"img").attr('title', weather[i].weatherDesc[0].value);
        $(ids[i]+"min").text(weather[i].tempMinC);
        $(ids[i]+"max").text(weather[i].tempMaxC);

        if(i > 0)
            {                           
        var d = new Date(weather[i].date);
        $(ids[i]+"day").text(weekdays[d.getDay()]);
            }
            }
                console.dir(response);
            },
            error: function (e) {
                console.log(e.message);
        }

}); });

我注意到我的网站加载时间要长得多。

我能做些什么来加快速度吗?也许延迟天气预报

2 个答案:

答案 0 :(得分:0)

尝试删除async:false

Ajax旨在异步。放async:false是一个坏主意,并且总是有更好的方法。

async:false使所有内容(甚至是GUI更新)等待完成任务。那不是你想要的。

这是一篇非常好的文章:http://javascript.about.com/od/ajax/a/ajaxasyn.htm

答案 1 :(得分:0)

“async:true”将允许在处理ajax请求时运行其他脚本。 这样你的ajax请求就不会再阻止页面加载了。