如何用javascript获取某一网站上每10分钟更新一次的xml文件,然后保存到本地?
4个回答
展开全部
获取xml,可以使用<script>标记的load形式,结合setInterval。
保存到本地,我给出一个html5的实现方式吧。
以下是全部的代码,从构建基础的xhr开始
<script type="text/javascript">
//不同的xhr对象,考虑到浏览器兼容性
HTTP._factories = [
function() { return new XMLHttpRequest(); },
function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
];
//xhr 工厂
HTTP._factory = null;
//返回一个xhr对象
HTTP.newRequest = function() {
if (HTTP._factory != null) return HTTP._factory();
for(var i = 0; i < HTTP._factories.length; i++) {
try {
var factory = HTTP._factories[i];
var request = factory();
if (request != null) {
HTTP._factory = factory;
return request;
}
}
catch(e) {
continue;
}
}
// 如果没有符合的xhr,返回错误信息
HTTP._factory
= function() {
throw new Error("XMLHttpRequest not supported");
}
HTTP._factory(); // Throw an error
}
//这个是获取xml的函数
HTTP.getXML = function(url, callback) {
var request = HTTP.newRequest();
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200)
callback(request.responseXML);
}
request.open("GET", url);
request.send(null);
};
//保存局部变量
var staticNum = function(){
var i = 0;
storage(xmlRes, i);
}
//将xml保存至本地
var storage = function(xmlRes, i){
i += 1;
var name = "xmlRes" + i;
localStorage.setItem(name, foo);
}
//每10分钟发送一次请求
var xmlReq = setInterval(function(){
var url = "";
HTTP.getXML(url, storage);
}, 600000);
</script>
保存到本地,我给出一个html5的实现方式吧。
以下是全部的代码,从构建基础的xhr开始
<script type="text/javascript">
//不同的xhr对象,考虑到浏览器兼容性
HTTP._factories = [
function() { return new XMLHttpRequest(); },
function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
];
//xhr 工厂
HTTP._factory = null;
//返回一个xhr对象
HTTP.newRequest = function() {
if (HTTP._factory != null) return HTTP._factory();
for(var i = 0; i < HTTP._factories.length; i++) {
try {
var factory = HTTP._factories[i];
var request = factory();
if (request != null) {
HTTP._factory = factory;
return request;
}
}
catch(e) {
continue;
}
}
// 如果没有符合的xhr,返回错误信息
HTTP._factory
= function() {
throw new Error("XMLHttpRequest not supported");
}
HTTP._factory(); // Throw an error
}
//这个是获取xml的函数
HTTP.getXML = function(url, callback) {
var request = HTTP.newRequest();
request.onreadystatechange = function() {
if (request.readyState == 4 && request.status == 200)
callback(request.responseXML);
}
request.open("GET", url);
request.send(null);
};
//保存局部变量
var staticNum = function(){
var i = 0;
storage(xmlRes, i);
}
//将xml保存至本地
var storage = function(xmlRes, i){
i += 1;
var name = "xmlRes" + i;
localStorage.setItem(name, foo);
}
//每10分钟发送一次请求
var xmlReq = setInterval(function(){
var url = "";
HTTP.getXML(url, storage);
}, 600000);
</script>
展开全部
呵呵,哥们儿这回答可能拿不到分,不过你这问题是对你有用的,回答一下,自己斟酌一下.
JS那个定时器叫什么来着?好像setIntervar?在客户端的.
HttpXmlRequest这是Ajax的基础,其实根本没必要学Ajax,知道了Request怎么用,别的都是浮云
JS那个定时器叫什么来着?好像setIntervar?在客户端的.
HttpXmlRequest这是Ajax的基础,其实根本没必要学Ajax,知道了Request怎么用,别的都是浮云
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用javascript? 保存到本地? 保存到哪个本地? 如果你想抓取对方服务器上的内容用php的file_get_contents方法. 如果你想用javascript只能用XHR, 但是它不支持跨域请求. 除非对方设置了Access-Control-Allow-Origin头允许你抓它的内容.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道哦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询