从其他网址加载数据

时间:2009-07-25 13:27:04

标签: jquery

我是javascript和jquery的新手,我通过php加载来自其他网站的数据,但我想每分钟刷新一次而不使用php,因为他们返回的数据格式为 1000,10000 当然,每次都有不同的数字。

那么如何每分钟加载数据并将其拆分,就像在php中我使用 explode(“,”,“1000,10000”)

我想拆分数据以显示%,因此在此示例中,1000/10000 * 100将为我们提供10%。

谢谢。

3 个答案:

答案 0 :(得分:3)

您要找的是字符串split()功能。您可以使用它来获取字符串并根据正则表达式进行拆分。然后,您可以获取返回的子字符串并将其转换为数字,以便对它们进行数学计算。请注意,您可以省略显式转换,但有时数字的处理方式与字符串不同(例如,+运算符将追加字符串,即使它们都是数字),所以我觉得这是一个很好的做法。 / p>

 var nums = data.split( /,/ );

 var pct = Number(nums[0]) / Number(nums[1]) * 100;

要每分钟获取数据,您需要使用AJAX并调用生成数字的php方法。请注意,url需要位于同一个域中,或者您需要使用JSONP进行传输。我假设(因为你正在使用字符串),该值不是JSON,而是原始内容。如果您可以使用JSON,则不需要进行字符串拆分,因为您可以将数字放在JSON对象的各个属性中。

 $(function() {
    setInterval( function() {
       $.ajax({
          url: 'some.php',
          dataType: 'html',
          success: function(data) {
               var nums = data.split( /,/ );
               $('#percentage').text( (Number(nums[0]) / Number(nums[1]) * 100) + '%' );
          }
       });
    },60000);
 });

答案 1 :(得分:0)

如果我理解你的问题,你已经知道如何将数据加载到你的页面,现在你只想解析它并使用它。

在这种情况下,你真的不需要任何jquery,你只需使用javascript split方法。

var dataFromOtherUrl = "1000, 10000";
var result = dataFromOtherUrl.split(", ") // result is the array: ["1000", "10000"]

从那里你可以使用数组中的值来进行%math:

var percentage = result[0]/result[1] * 100;

如果要限制字符串拆分的次数,可以将另一个参数传递给方法。

答案 2 :(得分:0)

要每分钟运行一个功能,您必须使用setInterval - Methode。

var activ = window.setInterval("update()", 1000*60);
function update() {
  // your update code goes here
  // Ajax-Request
  // parsing
  // updating the display
}

停止它,使用:

window.clearInterval(activ);