 
			
				17.12.2011, 00:48
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2011 
					
					
					
						Сообщений: 26
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Выполнить 2 разных действия при одном запросе.
			 
			
		
		
		
		Добрый вечер. 
 
Начну сразу с абстрактного примера.....а лучше с реального 
К примеру на майл.ру при просмотре списка сообщений, есть возможность отметить какие-либо сообщения и удалить их. При этом соотвественно происходит 2 действия, 1 - удаление из БД, 2 - подгрузка обновленного списка с сообщения. 
 
как вприниципе реализовывается такой алгоритм? 
 
Пока только одно предположение и не факт что рабочее, но  в любом случае оно мне не нравится: 
существует один файл обработчик запроса. В начале там происходит удаление сообщение, дальше в тексте обработчика идет запрос к БД и вывод сообщений. Получается что при вызове js-функции вначале мы удаляем сообщения и после получаем новый список из БД, рез-т выводим в одном диве. 
 
Аналогично можно использовать и добаление данных в БД и т.д. 
 
Вопрос такой, как правильно реализовать данный механизм? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 00:59
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Повесить один обработчик и вызвать 2 ф-ции. Если хочется красиво, расширяемо и т.д. - использовать  Deferred.  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 01:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2011 
					
					
					
						Сообщений: 26
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		trikadin, имеешь ввиду 2 ф-ции на .onreadystatechange? а напрямую можно так сделать или же заюзать одну ф-цию обертку, внутри которой вызывать уже нужные ф-ции.....если так покатит   
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 01:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Gesandte
			
		
	 | 
 
	| 
		trikadin, имеешь ввиду 2 ф-ции на .onreadystatechange?
	 | 
 
	
 
 Это имею в виду:
 
function func1(){};
function func2(){};
// всякий код...
xhr.onreadystatechange= function(){
 if (this.readyState==4 && this.status==200) {
  func1();
  func2();
 }
};
А про обёртку - я вам скинул ссылку.  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 01:59
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2011 
					
					
					
						Сообщений: 26
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		trikadin, это я и подразумевал, говоря про обертку, только немного в другой записи    так и сделаю, спасибо за помощь))) а пихать лишний код пока никчему    
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 02:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 что-то знаю 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.05.2009 
					
					
					
						Сообщений: 5,176
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 хм... а разве эти оба действия не на сервере делаются? Причем тут два действия на скрипте? Можно отправить серверу один раз две команды, удаление и получение списка. Тем самым вы одним запросом и удалите запись(и) и получите свежий список. 
 
........А хотя по разделу в теме... видимо юзаете NodeJS... я правильно понял? 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось devote, 17.12.2011 в 02:21.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 02:26
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от devote
			
		
	 | 
 
	| 
		хм... а разве эти оба действия не на сервере делаются? Причем тут два действия на скрипте? Можно отправить серверу один раз две команды, удаление и получение списка. Тем самым вы одним запросом и удалите запись(и) и получите свежий список.
	 | 
 
	
 
 Можно отправить команду и получить и список, за один запрос. Чего лишние запросы плодить.
 
	
 
	| 
		
			Сообщение от devote
			
		
	 | 
 
	| 
		 ........А хотя по разделу в теме... видимо юзаете NodeJS... я правильно понял?
	 | 
 
	
 
 Тема и про аякс, вообще-то. И вообще, все забивают на раздел)  
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 02:28
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 что-то знаю 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 24.05.2009 
					
					
					
						Сообщений: 5,176
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от trikadin
			
		
	 | 
 
	| 
		Тема и про аякс, вообще-то. И вообще, все забивают на раздел)
	 | 
 
	
 
 Ну это понятно что аякс, я просто подумал может он там NodeJS юзает на стороне сервера, вот и спрашивает как в JS что-то сделать... Но видимо NodeJS он не юзает, значит первый параграф моего прошлого поста остается в силе... ибо не вижу смысла двадцать запросов делать когда можно все сделать одним.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 02:32
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Модератор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.04.2010 
					
					
					
						Сообщений: 3,417
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Ну да, логично. 
		
	
		
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				17.12.2011, 12:56
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Интересующийся 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.12.2011 
					
					
					
						Сообщений: 26
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 дык один запрос в один обработчик пойдет.....а хочется котлеты с мухами не мешать (один файл полностью обрабатывает запросы - удаление, добавление, изменение и тд, один выводит данные), можно конечно все это инклудить в один, чтобы не смешивать...... 
по времени обработки, если пойдет 2 запроса если не ошибаюсь чуть больше уйдет.....но разница как мне кажется будет невелика или нет? 
больше минусов не вижу пока) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |