| 
	
	
		
		
			
			 
				Вызов методов объекта подгружаемого по ajax
			 
			
		
		
		
		Не получается найти ответа, наверное из-за незнания как нормально сформулировать вопрос. 
 
задача такая. есть 2 кнопки: comments, add_comments. 
нажимаю на первую - по ajax подгружаются комментарии и показываются на экране под фоткой. 
нажимаю на add_comments - происходит всё тоже самое, только ещё показывается формачка для ввода комментария и устанавливается на неё фокус. 
 
в чём проблема. ajax - асинхронный, поэтому нельзя сделать такую конструкцию: 
comments = ajax_comments(photoid); 
comments.toggle(); 
и 
comments = ajax_comments(photoid); 
comments.add_comment_form(); 
 
надо ведь как-то дождаться, чтобы сначала комментарии по ajax подгрузились, а потом уже вызывать методы toggle и add_comment_form 
 
тогда сделал вот так: 
comments = ajax_comments({photo: photoid, onLoad: function() {this.toggle()}); 
 
так вроде нормально, но что делать, когда комментарии уже подгрузились? то есть объект с подгруженными комментариями лежит в некотором массиве и при необходимисти я его достаю оттуда по photoid. 
 
тогда делаю такой трюк: 
comments = ajax_comments({photo: photoid, command: function() {this.toggle()}); 
по сути ничего не изменилось, только название метода поменялось - с onLoad на command, то есть теперь этот метод вызывается не только при загрузке но и при каждом обращении в функции ajax_comments (новый ли объект создаётся и подгружается по ajax и после вызывается command, или берётся уже готовый объект). 
Но тут опять проблема. А если объект уже создался, но не подгрузился по ajax? или противоположный случай: запоминаю объект, только после того как данные подгрузятся по ajax, но тогда если несколько раз нажать на кнопку, то могут вызываться несколько лишних ajax запросов. 
 
И потом как всё таки быть с такой конструкцией: 
comments = ajax_comments(); 
comments.toggle(); 
получается, что все команды над ajax объектом должны быть заблокированы до тех пор пока его данные не подгрузятся. 
 
Я так понимаю что такие проблемы уже давным давно решили и придумали какой-нибудь шаблон проектирования для этого. Только вот  я никак не могу найти куда копать. Подскажите пожалуйста. 
 
В терминологии может тоже ошибиться. Тут под "ajax-объект"-ом я имею в виду обыкновенных javascript object, данные которого подгружаются через ajax. ну а проблема в том что методы работы с ним должны быть доступны только после того как данные подгрузились 
		
	
		
		
		
		
		
		
	
		
			
			
	
			
			
			
			
			
				 
			
			
			
			
			
			
				
			
			
			
		 
		
	
	
	 |