Вопрос № 156015: Доброго времени суток! Недавно прочитал в Интернете, что JavaScript не может работать с файлами на стороне сервера. Правда ли это? Если да, то как же работать с файлами? И если можно, то подскажите пожалуйста как! Подскажите пожалуйста!...
Вопрос № 156.015
Доброго времени суток! Недавно прочитал в Интернете, что JavaScript не может работать с файлами на стороне сервера. Правда ли это? Если да, то как же работать с файлами? И если можно, то подскажите пожалуйста как! Подскажите пожалуйста!
Отвечает: Прим Палвер
Здравствуйте, Захаров Алексей Александрович!
Это правда. Но если очень нужно - вот Вам AJAX: http://www.easywebscripts.net/ajax/ajax_fundamentals.php
А яваскрипт работает исключительно в браузере читателя вашего сайта и может затронуть только его файлы. Если нужно сотворить чего-то на сервере без перезагрузки страницы, аякс - это самое оно. Сможете работать и с файлами, и с базой данных. Но нужно знать ещё один, серверный язык, на котором будет написан ещё один файл, на который мы и сошлёмся.
Если
нужно всего лишь загрузить файл на сервер без перезагрузки страницы, можно и без аякса обойтись. Это делается с помощью невидимого фрейма: http://blog.webmasterschool.ru/php/78/ Но там тоже нужен серверный язык, например, php.
--------- Блаженны прыгающие, ибо допрыгаются
Ответ отправил: Прим Палвер (статус: 8-й класс)
Ответ отправлен: 27.12.2008, 18:10
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 239808 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает: Товарищ Бородин
Здравствуйте, Захаров Алексей Александрович! Ответ предыдущего эксперта не то, чтобы совсем неверен, скорее, поверхностный. Javascript действительно очень широко известен, как язык "клиентский", т. е. работающий на стороне клиента, в браузере. Но известен также и серверный Javascript. Практических примеров его применения по крайней мере в России я не знаю. Javascript вообще функционально язык более слабый (это мое личное мнение, сформированное моим опытом программирования на данных языках - в равных
условиях PHP выигрывает; если же мы попытаемся сделать на PHP, например, всплывающее окно, которое на Javascript пишется в несколько строк, то фиаско обеспечено; намекаю на то, что все хорошо, когда оно на своем месте, и к языкам программирования это имеет пренепосредственное отношение), чем тот же PHP, поэтому использование его в качестве серверного языка программирования - это очень неудобно. Доступ к файловой системе обеспечивается в Windows с помощью объекта F
ileSystemObject. Программы, использующие этот объект, могут интерпретироваться браузером IE 5+ и системой Windows Scripting Host, встроенной в Windows 98 SE и более поздние версии. Запускать программы для WSH следует так - wscript "путь к файлу.js". Расширение .js в данном случае обязательно. В Вашу систему по каким-либо причинам WSH может быть не встроен.
Несколько примеров работы с файловой системой я могу привести. Создание объекта файловой системы:
var fso = new ActiveXObject("Scripting.FileSystemObject");//
Так можно использовать FileSystemObject в HTML и WSH
var fso = WScript.CreateObject("Scripting.FileSystemObject"); // только WSH
var c = fso.GetDrive("C"); // ссылка на диск C var freespace = c.FreeSpace; // получение свободного места на диске C.
Информация взята из старой книги по Javascript - "Самоучитель по Javascript", В. Дунаев. Не знаю, реально ли найти такого мамонта в прод
аже, хотя можете попытаться "накопать" какое-либо переиздание, если тема интересна. Но вообще-то доступ к файловой системе из браузера блокируется даже самыми минимальными настройками безопасности. Что касается сервера, то очевидно, что такое может пойти только на Windows-сервере (на одном из которых, кстати, стоит и данный портал). Все это лично мне известно только в теории, сугубо в теории, и на практике я такого не испытывал.
Технология Ajax, о которой упоминает Прим Палвер, используется
не для работы с файлами на стороне сервера. Собственно говоря, это технология асинхронного взаимодействия типа "клиент - сервер", причем клиент, посылая запрос серверу, не дожидается ответа от него, а продолжает свою работу. То есть, сервер и клиент работают "асинхронно". Собственно, клиент ничего не знает о сути работы сервера, он всего лишь посылает ему запрос. Что в это время делает сервер, клиенту совершенно до лампочки(совсем, как в реальной жизни
). Но это уже и не работа с файловой системой посредством Javascript`а. Javascript лишь вбрасывает в сервер некоторое количество информации, на которую сервер обычно дает какой-либо ответ, который уже интерпретируется Javascript`ом в какие-либо действия.
Технология эта прекрасно подходит для создания приложений, работающих без перезагрузки страницы.
Что же касается сути Вашего вопроса, то я ни за что не поверю, что на хостинге, поддерживающем PHP, есть у Вас какая-то задача, с которой может справиться
Javascript, но не может справиться PHP. Вот если Ваш хостинг не поддерживает PHP, тогда другое дело Но тогда он должен поддерживать выполнение серверных скриптов Javascript Как видите, на любое "если" есть свое "но"...
С уважением, Товарищ Бородин
Ответ отправил: Товарищ Бородин (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ICQ: 346988855 ---- Ответ отправлен: 28.12.2008, 00:10
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 239839 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.