В jQuery-мобильном веб-приложении я прочитал txt файл в массиве с помощью $.get:
$(document).on('pageinit','#welcome-page', function(){
var request = $.get("proDB.txt", function(data) {
var lines=data.split(/\n/);
var i;
prodata.push(0);
var fieldnames=lines[0].split(/\t/);
for (i = 1; i < lines.length-1; ++i) {
var fields=lines[i].split(/\t/);
prodata.push(i);
var j;
prodata[i]={};
prodata[i]['id']=i; //auto id, there is no more 'id' column in the DB file.
for (j = 0; j < fields.length; ++j) {
var str=fieldnames[j];
prodata[i][str]=fields[j];
}
}
//SORT BY NAME
prodata.sort(SortByName);
alert("request"+request);
}, "text");
то позже в коде, я убеждаюсь, что $.get завершен, и я использую массив:
request.done(function(){...
Но alert
не появляется в iOS Safari, тогда как оно появляется с браузером android и настольным firefox.
Более того, я действительно недоволен этим, так как я хотел бы прочитать файл раз и навсегда в отдельной функции, а затем иметь возможность работать с массивом столько, сколько захочу.
Есть ли более чистый способ отправить с моим приложением и прочитать этот текстовый файл в массив, не беспокоясь, если он ".done"? например, с помощью pagebeforecreate
или что-то в этом роде? Я должен упомянуть, что файл, который я читаю данные, придется иногда обновлять, потому что его серверный клон будет развиваться.
благодаря
Я обнаружил Ripple для Chrome, и я смог отлаживать это.
Вы должны проверить выход консоли на сафари на настоящие JS-ошибки. Если вы запустите его в эмуляторе iOS - это руководство по просмотру консоли отладки js