我是javascript和jquery的新手,我通过php加载来自其他网站的数据,但我想每分钟刷新一次而不使用php,因为他们返回的数据格式为 1000,10000 当然,每次都有不同的数字。
那么如何每分钟加载数据并将其拆分,就像在php中我使用 explode(“,”,“1000,10000”)。
我想拆分数据以显示%,因此在此示例中,1000/10000 * 100将为我们提供10%。
谢谢。
答案 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);