我有一个索引页面,我想用它来设置本地数据库,然后再转到其他页面。但是,每当我激活window.location代码时,其他函数都不会运行,但是当我将其注释掉时,其他函数运行良好。任何想法会导致什么,以及如何让功能和window.locations工作?代码如下:推迟window.location以允许AJAX的时间
<script>
var db = window.openDatabase("DB1", "", "DB", 1024 * 1000)
CreateDB(); //Creates local database tables
loadRouteList(); //Queries web server database using AJAX and inserts Routes
window.location = 'Application.html';
</script>
函数中使用:
function CreateDB() {
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS Routes(id INTEGER PRIMARY KEY, routeID TEXT, customerID TEXT, stopSeq TEXT, driverID TEXT)', []);
});
};
function loadRouteList() {
var dataObject = {
postDesignator: 'routes',
};
$.ajax({
url: 'http://url.php',
data: dataObject,
dataType: 'json',
type: 'post',
success: function (Result) {
for (var i = 0, len = Result.records.length; i < len; ++i) {
var route = Result.records[i].record;
insertRoute(route.routeID, null, null, null);
}
}
});
}
你的 “加载” 功能可能启动异步活动。您需要将页面重新加载到HTTP请求已完成的位置。您的具体做法取决于您使用的代码。 – Pointy
在设置window.location之前立即发出的ajax请求在页面开始加载Application.html之前不会返回,但它们应该仍然会触发 –