javascript - 正在加载文件名中包含今天日期的 XML 文件...如果不存在具有今天日期的文件,则需要回退到旧文件

标签 javascript jquery xml ajax datetime

所以这是我的问题。我目前正在使用 javascript/jQuery 加载一个文件名为 carousel_large_2010-06-08.xml 的 XML 文件。我这样做的方式是检查今天的日期,然后抓取文件名中包含该日期的文件... 问题是有时他们不会在给定的日期上传新文件,因此需要回退到存在的旧日期。想知道该怎么做吗?这是我的代码:

        // set date for xml file
        var currentTime = new Date(),
            month = currentTime.getMonth() + 1,
            day = currentTime.getDate(),
            year = currentTime.getFullYear();

        if(month.toString().length == 1){
            month = '0'+month.toString();
        }
        if(day.toString().length == 1){
            day = '0'+day.toString();
        }

        var dateObject = year+"-"+month+"-"+day;

        // start magic
        $jq.ajax({
            type: "GET",
            url: "_xml/carousel/home/carousel_large_"+dateObject+".xml",
            dataType: "xml",
            success: HPCarousels.heroCarousel.parseXML,
            error: function(){
                alert('Error Loading XML Content');
            }
        }); 

最佳答案

这是一个建议的(未经测试的)解决方案。我主要基于你的,但排除了日期字符串计算。将 maxOffset 设置为您要回顾的最大天数(在您昨天说的问题中,所以 1)

function getDateString(offset) {

    // set date for xml file
    var currentTime = new Date().setDate(today.getDate()-offset),
        month = currentTime.getMonth() + 1,
        day = currentTime.getDate(),
        year = currentTime.getFullYear();

    if(month.toString().length == 1){
        month = '0'+month.toString();
    }
    if(day.toString().length == 1){
        day = '0'+day.toString();
    }

    return year+"-"+month+"-"+day;
}

var maxOffset = 1;
var success = 0;
for(var offset = 0; offset <= maxOffset && !success; offset++) {
    success = 1;
    // start magic
    var dateString = getDateString(offset);
    $jq.ajax({
        type: "GET",
        async: false; 
        url: "_xml/carousel/home/carousel_large_"+dateString+".xml",
        dataType: "xml",
        success: HPCarousels.heroCarousel.parseXML,
        error: function(){
            success = 0;

        }
    }); 
}
if (!success) {
    alert('Error Loading XML Content');
}

关于javascript - 正在加载文件名中包含今天日期的 XML 文件...如果不存在具有今天日期的文件,则需要回退到旧文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2999446/

相关文章:

xml - 在 Linux 上使用 shell 脚本从命令行编辑 XML

javascript - 处理 XML DOM 中的空 #text

java - 发送 SOAP 请求以使用您自己的服务

javascript - 使用 Vue.js (cdn) 在特定元素上切换显示/隐藏

javascript - 这个 jquery/javascript 循环的更短替代方案?

jquery - "this"jQuery.map() 中的关键字

jquery - 如何将占位符添加到选择下拉列表内的文本框

javascript - 如何将简单值从 axios.post 发送到 asp.net 核心?

javascript - 浏览器中的服务器响应时间

jquery - 如何在Grails 2.4中安装jquery 1.11.3?