繁体   English   中英

没有互联网连接时的Ajax后备

[英]ajax fallback when no internet connection

以下代码将数据提交到服务器。 提交给服务器之前,数据实际上存储在localStorage中。 这是由于我要求用户无需互联网连接即可使用我的系统。

问题是,当没有Internet连接时,显然无法将数据发布到服务器。 在这种情况下我该怎么办?

$('#btnSync').on('click', function(e) {
    var my_data = {};
    var my_value = [];

    for ( var i = 0, len = localStorage.length; i < len; ++i ) {
        if((localStorage.key( i ).includes('set'))){
            var lsItems = JSON.parse(localStorage.getItem( localStorage.key( i ) ));

            allItems[localStorage.key( i )] = lsItems;
        }
    }

    $.ajax({
        url: "action.php",
        type: "POST",
        data: {'action':'btnSync','allItems':allItems},
        dataType: "json",
        success: function(data) {
            $.notify(
                {
                    message: data.message
                },
                {
                    type: data.status,
                    placement: {
                        from: "top",
                        align: "left"
                    },
                    newest_on_top: true,
                    delay: 0
                }
            );
        },
        error: function(data){
            $.notify(
                {
                    message: 'Unexpected error occured, please kindly contact System Administrator'
                },
                {
                    type: 'danger',
                    placement: {
                        from: "top",
                        align: "left"
                    },
                    newest_on_top: true,
                    delay: 0
                }
            );
        }
    });
});

您可以使用类似的ajax调用来检查连接/服务器是否启动。 寻找

statusCode.status == 0

错误,并将目的地无法访问/ Internet中断通知用户。 您可以将此ajax调用作为函数中的promise创建,并在所有ajax调用之前使用它,并要求用户连接到Internet,然后重试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM