我有一個索引頁面,我想用它來設置本地數據庫,然後再轉到其他頁面。但是,每當我激活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之前不會返回,但它們應該仍然會觸發 –