提高ajax调用的速度和效率

时间:2011-11-23 01:36:44

标签: c# javascript ajax geolocation

我不是最有纪律的开发者,不懂标准而且自学成才所以请耐心等待。我创造的东西非常逻辑和快速,但并不总是使用“编程标准”。

我有一个使用地理定位API的移动应用。它从我的数据库中获取数千个位置,并为用户当前位置周围的位置生成gmaps v3标记。

从我的JS调用ajax到一个aspx页面调用数据库,生成一个json字符串,然后将json字符串发送到javascript,然后创建google地图标记。

如果json字符串在平面文件中,我会节省时间吗?我不确定一般来说,从一个aspx页面访问一个sql db比一个带有预渲染JSON的平面文件上的c#file i / o更快。

编辑:瓶颈在JS中而不是服务器端代码。

(当然,使用平面文件,每次更新数据库时都会更新)

function ajaxReturn(responseText) {
    var JSONbizarray = (responseText.substring(responseText.indexOf('<span id="Label1">'), responseText.indexOf('</span>')).replace('<span id="Label1">', ''));
    var JSONBizList = JSON.parse(JSONbizarray);

    var list = document.getElementById('businessListContent');
    list.innerHTML = "";
    list.innerHTML += "<ul id=\"barListUL\" data-role=\"listview\" data-theme=\"d\" data-dividertheme=\"d\">";

    for (var i = 0; i < JSONBizList.length; i++) {
        var biz = JSONBizList[i];
        list.innerHTML += "<li tabindex=\"0\" data-theme=\"d\" class=\"ui-btn ui-btn-icon-right ui-li ui-btn-hover-d\" role=\"option\">stuff using json object</li>";
    }

    list.innerHTML += "</ul>";
}

2 个答案:

答案 0 :(得分:1)

在本地缓存数据总是一个好主意。我当然会寻找机会。但是,您可能会遇到需要在场景中本地存储的数据量的问题。

要考虑的另一件事是在服务器端努力提高效率。确保对服务器的调用是GET并且可以缓存在那里。

答案 1 :(得分:0)

除了尝试和测量之外,没有其他方法可以回答性能问题。

Stopwatchhttp://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx)类将负责测量,而File.ReadAllLines(http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx)将提供“从文件中读取。在大约5行代码中,你有你的为您的数据库/磁盘/服务器/网络个性化答案。