首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最小化jQuery ajax解析的http请求

最小化jQuery ajax解析的http请求
EN

Stack Overflow用户
提问于 2013-04-30 09:53:05
回答 1查看 230关注 0票数 1

我创建了下面的函数,它基本上解析给定url的HTML,扫描某个类并处理它找到的文本:

我的功能的一个小样本:

代码语言:javascript
复制
function displayRating(theID){
  var $theUrl = $('#' + theID + ' > a').attr('href');
  jQuery.support.cors = true;
  var num, str, nums=[], avgnum, avgstr, avgnums=[];
  $.ajax({
    url: $theUrl,
    type: "GET",
    timeout: 3000,
    dataType: "text",
    success: function(data) {
      $(data).find(".count").each(function () {
        str = $(this).text();
        num = parseInt(str.substring(1,str.length-1), 10);
        nums.push(num);
      });
      var totalSum = 0;
      for (var i = 0; i < nums.length; i++){
        totalSum += nums[i];
      }
     more code here...
  });
}

我调用这个函数15次,因为我需要显示几个可以从几个页面收集的数据。使用此方法,我希望http请求的数量与调用函数(15)的数目相同。但是,我得到了一个非常大的数字(340),这意味着在解析HTML时,它还会在后台请求我调用的urls中包含的所有图像。这意味着页面的加载时间不可接受(5-6秒)。

我的问题是:我能优化这个函数吗?这样它就可以将作为纯文本来读取,而无需在后台加载所有的图像?有没有办法将这些要求降到最低?

注意:不幸的是,PHP不是一个选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-30 12:10:15

您可以用自定义字符串替换src attri但是,解析新字符串,而不是替换正确的src标记:

代码语言:javascript
复制
data=data.replace(/ src=/g," mySrc=");
$(data).find(".count")...
...
data = data.replace(/ mySrc=/g," src=");

这里是一个使用(但不加载)配置文件映像的JSfiddle。

注:您应该在数据字符串中找到一个自定义attribut (示例中的mySrc)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16297001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档