Импорт данных из txt в JavaScript

12
_vb_
На сайте с 25.07.2009
Offline
104
#11
bulanov:
Все хранится на сервере. txt - это, так сказать БД. Из которой нужно вставить данные в скрипт.

XML я прочесть могу http://propukal.ru/ajax/examples/1/test.html а вот тхт...
Данные в txt постоянно меняются.

Какая разница, что читать: txt или xml...


var req;

function load_text(url) {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
if (req != undefined) {
req.onreadystatechange = function() {loadDone();};
req.open("GET", url, true);
req.send("");
} else {
alert("Can't load file");
}
}

function loadDone() {
if (req.readyState == 4) {
if (req.status == 200) {
alert("loaded:\n" + req.responseText);
} else {
alert("error:\n" + req.status + "\n" +req.statusText);
}
}
}

Грузить данные вот так:

load_text('http://www.site.ru/data.txt');

ну и потом содержимым req.responseText распоряжайтесь на свое усмотрение.

ps. ступил насчет аргумента loadDone - поправил.

Саратовская фракция серча (). Давайте посчитаемся.
Brand from Amber
На сайте с 18.08.2007
Offline
293
#12
RedOK:
и пишет в файлы?

В куку - легко. А что... Чем кука не файл? 🚬

Лучший способ понять что-то самому - объяснить это другому.
bulanov
На сайте с 29.08.2008
Offline
69
#13

_vb_, низкий Вам поклон и огромнейшее спасибо!

bulanov добавил 27.04.2010 в 04:27

Dreammaker, ходил туда :)

bulanov добавил 27.04.2010 в 07:39

Помогите пожалуйста объединить 2 скрипта.

Нужно, чтобы данные в массиве d заменялись на данные в подгружаемом txt.

1 читает txt (причем, как я понимаю по нажатию кнопки)

2 рисует график.

1 скрипт: [JS]

load_text('http://www.site.ru/data.txt');

var req;

function load_text(url) {

if (window.XMLHttpRequest) {

req = new XMLHttpRequest();

} else if (window.ActiveXObject) {

req = new ActiveXObject("Microsoft.XMLHTTP");

}

if (req != undefined) {

req.onreadystatechange = function() {loadDone();};

req.open("GET", url, true);

req.send("");

} else {

alert("Can't load file");

}

}

function loadDone() {

if (req.readyState == 4) {

if (req.status == 200) {

alert("loaded:\n" + req.responseText);

} else {

alert("error:\n" + req.status + "\n" +req.statusText);

}

}

}[/JS]

Второй: [JS]<script id="source" language="javascript" type="text/javascript">

$(function () {

var d = [[-373597200000, 315.71], [-370918800000, 317.45], [-368326800000, 317.50], [-363056400000, 315.86], [-360378000000, 314.93], [-357699600000, 313.19], [-352429200000, 313.34], [-349837200000, 314.67], [-347158800000, 315.58], [-344480400000, 316.47], [-342061200000, 316.65], [-339382800000, 317.71], [-336790800000, 318.29], [-334112400000, 318.16], [-331520400000, 316.55], [-328842000000, 314.80], [-326163600000, 313.84], [-323571600000, 313.34], [-320893200000, 314.81], [-318301200000, 315.59], [-315622800000, 316.43], [-312944400000, 316.97], [1159653600000, 379.03], [1162335600000, 380.17], [1164927600000, 381.85], [1167606000000, 382.94], [1170284400000, 383.86], [1172703600000, 384.49], [1175378400000, 386.37], [1177970400000, 386.54], [1180648800000, 385.98], [1183240800000, 384.36], [1185919200000, 381.85], [1188597600000, 380.74], [1191189600000, 381.15], [1193871600000, 382.38], [1196463600000, 383.94], [1199142000000, 385.44]];

$.plot($("#placeholder"), [d], { xaxis: { mode: "time" } });

$("#whole").click(function () {

$.plot($("#placeholder"), [d], { xaxis: { mode: "time" } });

});

$("#nineties").click(function () {

$.plot($("#placeholder"), [d], { xaxis: {

mode: "time",

min: (new Date("1990/01/01")).getTime(),

max: (new Date("2000/01/01")).getTime()

} });

});

$("#ninetynine").click(function () {

$.plot($("#placeholder"), [d], { xaxis: {

mode: "time",

minTickSize: [1, "month"],

min: (new Date("1999/01/01")).getTime(),

max: (new Date("2000/01/01")).getTime()

} });

});

});

</script>[/JS]

Содержимое txt:

[[-373597200000, 315.71], [-370918800000, 317.45], [-368326800000, 317.50], [-363056400000, 315.86], [-360378000000, 314.93], [-357699600000, 313.19], [-352429200000, 313.34], [-349837200000, 314.67], [-347158800000, 315.58], [-344480400000, 316.47], [-342061200000, 316.65], [-339382800000, 317.71], [-336790800000, 318.29], [-334112400000, 318.16], [-331520400000, 316.55], [-328842000000, 314.80], [-326163600000, 313.84], [-323571600000, 313.34], [-320893200000, 314.81], [-318301200000, 315.59], [-315622800000, 316.43]]

Не знаю нужны ли крайние квадратные скобки.

Подпись
T.R.O.N
На сайте с 18.05.2004
Offline
314
#14
bulanov:
Все хранится на сервере. txt - это, так сказать БД.

вопрос, что мешает, без всяких танцев с бубном, txt перегнать в массив по стандарту JS и сразу позгрузить как JS?????

T.R.O.N добавил 27.04.2010 в 10:02

bulanov, и перестаньте куда не попадя тыкать гквери... гадкая это штука.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
[Удален]
#15

баянный топик из серии - я работаю в "...", но мне надо сайт, народ помогите двумя строчками, 100 человек поможет - сайт будет!

bearman добавил 27.04.2010 в 10:17

bearman:
я работаю в "..."

это типа объединения фраз "мне не интересна эта технология/язык в будущем, а сайт надо, платить людям а не насиловать им мозг тоже не хочу ..."

RO
На сайте с 13.07.2009
Offline
88
#16
Brand from Amber:
В куку - легко. А что... Чем кука не файл? 🚬

кука-файл на локале, а не на сервере..

_vb_
На сайте с 25.07.2009
Offline
104
#17
bulanov:

Помогите пожалуйста объединить 2 скрипта.
Нужно, чтобы данные в массиве d заменялись на данные в подгружаемом txt.
1 читает txt (причем, как я понимаю по нажатию кнопки)
2 рисует график.

Если данные в txt будут в том формате, который вы указали, то в 1-ом скрипте замените строку

alert("loaded:\n" + req.responseText);

на

draw_plot(eval(req.responseText));

Напишите функцию draw_plot - ей аргументом будет передан массив из загруженных данных в формате, аналогичном тому, который имеет массив в переменной d вашего 2 скрипта. Ну а дальше - как удобнее передайте этот массив в функцию рисования аргументом, или сделайте его глобальным и установите d во втором скрипте, равным этому глоб.массиву, или еще как.

PS. а вообще то участник bearman прав. Если бы Вы обратились в раздел "Работа для вебмастера" с этой проблемой, то ее за небольшую плату решили бы гораздо быстрее, чем перепиской в этом топике. На форуме достаточно квалифицированных специалистов.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий