Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.02.2012, 12:55   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

мб ajax "толстый" для проекта? И в быстрых операциях, на клиенте это будет черезмерно "толсто" выполняться?

_-Re@l-_, а что мешает в js на станице клиента, передавать результаты работы из php на сервере?
Человек_Борща вне форума Ответить с цитированием
Старый 29.02.2012, 19:25   #12
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

Пользуйтесь на здоровье js+php =):

Код:
/*
Создание XMLHttpRequest-объекта
Возвращает созданный объект или null,
если XMLHttpRequest не поддерживается
*/
function createRequestObject() {
    var request = null;
    try {
        request=new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new XMLHttpRequest();
    } catch (e){}
    return request;
}

/*
Кодирование данных (простого ассоциативного массива вида
{ name : value, ...} в URL-escaped строку (кодировка UTF-8)
*/
function urlEncodeData(data) {
    var query = [];
    if (data instanceof Object) {
        for (var k in data) {
            query.push(encodeURIComponent(k) + "=" +
            		encodeURIComponent(data[k]));
        }
        return query.join('&');
    } else {
        return encodeURIComponent(data);
    }
}

/*
Выполнение POST-запроса 
url  - адрес запроса
data - параметры в виде простого ассоциативного массива
	{ name : value, ...} 
callback - (не обяз.) callback-функция,
	которая будет вызвана после выполнения запроса
	и получения ответа от сервера
*/
function serverRequest(url, data, callback) {
    var request = createRequestObject();
    if(!request) return false;
    request.onreadystatechange  = function() { 
            if(request.readyState == 4 && callback) callback(request);
        };
    request.open('POST', url, true);
    //if(request.setRequestHeader)
        request.setRequestHeader("Content-Type",
        	"application/x-www-form-urlencoded");
    request.send(urlEncodeData(data));
    return true;
}

/*Собирает данные с плей внутри тега <form>*/
function collectFields(id){
	var form = document.getElementById(id);
	var data = [];
	for (var i=0;i<form.elements.length-1;i++) {
		if(form.elements[i].type=="checkbox"){
			if(form.elements[i].checked) data[form.elements[i].name] = form.elements[i].value;
		}else{
			data[form.elements[i].name] = form.elements[i].value;
		}
    }
    return data;
}

/*собирает данные с формы, посылает их POST запросом на сервер и вызывает callback функцию при получении ответа от сервера*/
function sendForm(id, callback){
    serverRequest(document.getElementById(id).action, collectFields(id), callback);
}

function ajax_load_page(url,params,target){
	params["ajax"] = true; //говорим серверу о том, что хотим получить html код
	serverRequest(url,params,function(data){
		//вставляем полученный html код от сервера в нужный нам элемент
		document.getElementById(target).innerHTML = data.responseText;
	});
}
Код:
if($_REQUEST["ajax"]){
	header('Content-type: text/html; charset=utf-8');
	$twig->display($tpl);
	exit();
}
Kostia вне форума Ответить с цитированием
Старый 29.02.2012, 20:21   #13
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

1) Kostia, большую часть кода я просто не понял.
2) Так-с, видимо меня не понимают. Сказано, Ajax использовать не следует! Вопрос, что лучше, JS или PHP.

Впрочем, тему можно считать закрытой, ибо толку ноль.
_-Re@l-_ вне форума Ответить с цитированием
Старый 29.02.2012, 20:34   #14
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,691
По умолчанию

JS + http://javascript.ru/optimize/javasc...princip-raboty
Лучший вариант в вашем случае =) (IMHO естественно)
Цитата:
2) Выполнение JavaScript может быть отключено в браузере, хотя, впрочем, это уже проблема юзера.
Где то видел статистику что всего 5% таковых и то большая часть боты

Последний раз редактировалось Kostia; 29.02.2012 в 20:39.
Kostia вне форума Ответить с цитированием
Старый 29.02.2012, 21:55   #15
Bustle
Interdicted
Участник клуба
 
Аватар для Bustle
 
Регистрация: 25.11.2010
Сообщений: 1,194
По умолчанию

Цитата:
Вопрос, что лучше, JS или PHP
Вообще глупо сравнивать. Но если сильно хотите ответа - берите PHP.

Цитата:
Где то видел статистику что всего 5% таковых и то большая часть боты
Наверное все боты... Ибо те кто якобы отключают относятся к таким прошаркам населения, что даже не знают где его выключить.
Love writing code and I am really passionate about it
Bustle вне форума Ответить с цитированием
Старый 29.02.2012, 22:09   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Уж поверьте, овчинка выделки не стоит
А зря. ADSoft дело говорит. Половину обработки скроешь на сервере, а через JS просто подтягивай данные и пиши их в innerHTML некоего заранее предусмотренного DIV-а. Поверь мне плюсы сразу почувствуешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.03.2012, 00:24   #17
Bustle
Interdicted
Участник клуба
 
Аватар для Bustle
 
Регистрация: 25.11.2010
Сообщений: 1,194
По умолчанию

Цитата:
А зря. ADSoft дело говорит. Половину обработки скроешь на сервере, а через JS просто подтягивай данные и пиши их в innerHTML некоего заранее предусмотренного DIV-а. Поверь мне плюсы сразу почувствуешь.
Как я понял просто не времени и желания чего либо осваивать. Тут вообще идеальным вариантом будет node.js
Love writing code and I am really passionate about it
Bustle вне форума Ответить с цитированием
Старый 01.03.2012, 11:53   #18
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Вообще глупо сравнивать.
Я спрашивал, что лучше в моей ситуации.

Ну, забавный факт, кое-какие обстоятельства изменились, теперь оказывается что у меня есть ещё время до начала мая, поэтому думается что успею изучить что-то новое. Тогда вопрос. Как будет лучше : юзать PHP+JS+Ajax или же используя Node.js(и кстати, можно ли его с Ajax вместе пользовать?)?
_-Re@l-_ вне форума Ответить с цитированием
Старый 01.03.2012, 12:58   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Про Нодджесси ничего не знаю, хотя думаю что это некий аналог Джикуери.
Я лично использую классику Клиент через Аякс запрашивает данные. По событию их поступления браузеру просто вписываю их в особый DIV.
Выглядит это примерно так: Где-то глобально описываю компонент связки
Код:
 function ajax(){
  if (window.ActiveXObject)  return new ActiveXObject("Microsoft.XMLHTTP");
  else if (window.XMLHttpRequest) return new XMLHttpRequest();
  else {
   alert("Браузер слишком стар, и не поддерживает интерактивную работу");
   return null;
  }
};

var j=ajax();
А после в остальных JS скриптах его вызываю:
Код:
// Если сервер не ответил ошибкой то втиснуть ответ в DIV названный 
// content
function OnOk(){
 content.innerHTML=j.responseText;
}

// Если сервер ответил ошибкой то функцией fail() подсветить красным DIV
// Впихнув в него данные, которые являются текстом ошибки
// Функция fail() самописка, просто задает новый класс дивизиону
function OnFail(){
 content.innerHTML=j.responseText;
 fail(content);
}

// Собственно сам обработчик событий Джесси-Аякса
function OnGet(){
// Если у запроса статус получения (равный 4)
 if (j.readyState == 4){ 
// Если ... Впрочем это я описать не смогу словами, сам до конца не понял что-то
  if(j.status==200){
// то посмотреть нет ли в начале ответа строки Error, оговоренной между мной и мной
// как ответ от сервера об ошибке
   var a=j.responseText.substring(0,6);
// Если нет то вызвать Ок() процедуру иначе сфолить
   if(a!=err) OnOk()
   else OnFail();
  };
  if (j.status!=200){OnFail();}
 }
}

// и сам вызов-запрос
function dis(){
// откроем запрос (синхронный чтоб не вешать браузер)
 j.open("GET","table=kureer&id=123",true);
// укажем обработчик запроса
 j.onreadystatechange=OnGet;
// и отошлем на сервак
 j.send(null);
}
Усе. Весь Аякс на долонях
Че ту изучать то? Может это немного и напыщено, но я лично решил именно в таком стиле оформить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.03.2012, 15:06   #20
ZvEr_HaCkEr
VisualC++/DirectX
Форумчанин
 
Аватар для ZvEr_HaCkEr
 
Регистрация: 16.07.2010
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Про Нодджесси ничего не знаю, хотя думаю что это некий аналог Джикуери.
Тут вы совершено не правы. Node.js исполняется непосредственно на сервере, а Jquery на клиенте..

P.S лично я за это
ZvEr_HaCkEr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор языка программирования для работы с объектами сторонних приложений... Smerch66 Общие вопросы по программированию, компьютерный форум 3 30.03.2011 01:54
Выбор языка програмирования для создания программы Mayskiykot Помощь студентам 0 13.01.2011 10:23
Выбор языка для реализаци программы и способа реализации erhett Помощь студентам 10 07.10.2010 18:28
Выбор языка для реализации не интерактивного визуального ряда Ethernal Помощь студентам 1 09.02.2010 09:56