Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在应用程序重新启动(文件API)之前,不会显示对文件的修改_Javascript_Ajax_Cordova_Phonegap Plugins_Fileapi - Fatal编程技术网

Javascript 在应用程序重新启动(文件API)之前,不会显示对文件的修改

Javascript 在应用程序重新启动(文件API)之前,不会显示对文件的修改,javascript,ajax,cordova,phonegap-plugins,fileapi,Javascript,Ajax,Cordova,Phonegap Plugins,Fileapi,我正在使用PhoneGap和构建一个基本的Ios应用程序来下载和更新XML文件 下载部分是通过Ajax调用完成的,更新是通过FileEntry对象完成的 下面是它的样子: $.ajax({ type: "GET", url: "https://site/folder/GetFluxXmlServlet", dataType: "text", beforeSend: function () { Results

我正在使用PhoneGap和构建一个基本的Ios应用程序来下载和更新XML文件

下载部分是通过Ajax调用完成的,更新是通过FileEntry对象完成的

下面是它的样子:

$.ajax({
        type: "GET",
        url: "https://site/folder/GetFluxXmlServlet",
        dataType: "text",

        beforeSend: function () {
            Results.innerHTML = 'Loading...<br>';
        },

        success: function (MAJ) {

            var content = MAJ;

            document.addEventListener("deviceready", checkIfFileExists, false);

            function checkIfFileExists() {
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
                    fileSystem.root.getFile("global.xml", { create: false }, fileExists, fileDoesNotExist);
                }, getFSFail);
            }

            function fileExists(fileEntry) {
                fileEntry.createWriter(truncateFile, fileDoesNotExist);
            }

            function truncateFile(writer) {
                writer.onwriteend = function (evt) {
                    console.log("Writer" + evt.code);
                    writer.seek(0);
                    writer.onwriteend = function (evt) {
                        console.log("Changed" + evt.code);
                    };
                    writer.write(content);
                };
                writer.truncate(0);
            }

            function fileDoesNotExist() {

                document.addEventListener("deviceready", onDeviceReady, false);

                function onDeviceReady() {
                    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onSuccess, onError);
                }

                function onSuccess(fileSystem) {

                    var directoryEntry = fileSystem.root;

                    directoryEntry.getFile("global.xml", {create: true, exclusive: false}, function (fileEntry) {
                        fileEntry.createWriter(function (writer) {
                            writer.write(content);
                        }, function (e) {
                            console.log("Error :" + e.code);
                        });
                    }, function (e) {
                        console.log("Error :" + e.code);
                    });
                }

                function onError(evt) {
                    console.log("Error :" + evt.code);
                }
            }

            function getFSFail(evt) {
                console.log(evt.target.error.code);
            }
        },

        complete: function () {
            Results.innerHTML = 'Success';
            window.location.reload(true);
        }
    })

这会影响新数据的恢复吗,或者有更好的方法更新文件吗?

在推断我的研究之后,我发现Ajax请求正在被删除,所以我简单地添加了:

$(document).ready(function() {
    $.ajaxSetup({ cache: false });
});
在我的Javascript文件的开头

有关更多信息:

$(document).ready(function() {
    $.ajaxSetup({ cache: false });
});