Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2013, 08:51
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

странность с ajax
Доброе утро ,

Столкнулся сегодня со странностью в FF …
Так обычно я таскаю данные до ПХП скриптов и назад (ну просто удобнее мне так структурировать) и все нормально работает
$(function() { 	
	$.get(
		"php/123.php",
			{
				a: a,
				b: b
			},
			newFunc
		);
	return false;	
});
function newFunc() { d, e};

но вот сегодня Огнелис взбунтовался и отказался такое выполнять… и потребовал вот только так и никак иначе (Опера и Хром молча выполняют и не видят проблем):
$(function() { 	
	$.get(
		"php/123.php",
			{
				a: a,
				b: b
			},
			function newFunc() { d, e};
		);
	return false;	
});

Причем, что самое странное – в одном и том же js скрипте прекрасно работает первый вариант на одном запросе в другом все отказывалось работать до замены на 2й… делают одно и то же по сути только до разных скриптов стучаться да аргументы другие посылают... кто ни будь знает в чем может быть дело?

Последний раз редактировалось NeVirus, 29.11.2013 в 09:20.
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2013, 08:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от NeVirus Посмотреть сообщение
Так обычно я таскаю данные до ПХП скриптов и назад (ну просто удобнее мне так структурировать) и все нормально работает
$(function() { 	
	$.get(
		"php/123.php",
			{
				a: a,
				b: b
			},
			newFunc
		);
	return false;	
});
function newFunc { d, e};
В Опере
Цитата:
Syntax error at line 22 while loading: syntax error
function newFunc { d, e};
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2013, 09:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от NeVirus Посмотреть сообщение
но вот сегодня Огнелис взбунтовался и отказался такое выполнять… и потребовал вот только так и никак иначе
$(function() { 	
	$.get(
		"php/123.php",
			{
				a: a,
				b: b
			},
			function newFunc { d, e};
		);
	return false;	
});
В той же Опере
Цитата:
Syntax error at line 22 while loading: syntax error
function newFunc { d, e};
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2013, 09:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от NeVirus
кто ни будь знает в чем может быть дело?
А может таки начать писать без синтаксических ошибок для начала?
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2013, 09:19
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

ну понятное дело примеры взял с потолка именно для примера что бы наглядно было в чем разница (каюсь не проверил их на работоспособность)... вот настоящий код:
$(function() { 
    $.get( 
		"php/get_no_meter_kw_schedule.php",
			{
				user_name: $.cookie("user_name"),
				password: $.cookie("password"),
				room_num: client_info[19]
			},
			function get_no_meter_schedule (no_meter_schedule) {
				var no_meter_schedule = jQuery.parseJSON(no_meter_schedule);}
	);
	return false;	
});


и 2й

$(function() { 
  $.get( 
		"php/get_no_meter_kw_schedule.php",
			{
				user_name: $.cookie("user_name"),
				password: $.cookie("password"),
				room_num: client_info[19]
			},
			get_no_meter_schedule
	);
	return false;	
});

function get_no_meter_schedule (no_meter_schedule) {
    var no_meter_schedule = jQuery.parseJSON(no_meter_schedule);
};


но понятное дело он не отработает же...

подправил первые варианты - просто напросто скобки после имени функции потерял

Последний раз редактировалось NeVirus, 29.11.2013 в 09:22.
Ответить с цитированием
  #6 (permalink)  
Старый 29.11.2013, 09:27
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от NeVirus Посмотреть сообщение
вот настоящий код:
$(function() { 
    $.get( 
		"php/get_no_meter_kw_schedule.php",
			{
				user_name: $.cookie("user_name"),
				password: $.cookie("password"),
				room_num: client_info[19]
			},
			function get_no_meter_schedule (no_meter_schedule) {
				var no_meter_schedule = jQuery.parseJSON(no_meter_schedule);}
	);
	return false;	
});
Для меня странно такое использование... Всегда хватало неименованой функции.
Вот пример из документации

$.get(
	"test.cgi", 
	{ name: "John", time: "2pm" },
	function (data){
		alert("Data Loaded: " + data);
	}
);

Зачем давать имя функции (как у тебя) - я х/з... При том такое длиное!
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2013, 09:38
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

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

P.S. мне просто удобнее отражать в названии функции ее преднозначение (потом в будущем намного проще вспоминается что и откуда, хотя комментарии конечно тоже никто не отменял)... и иногда получаются такие вот динозавры
Ответить с цитированием
  #8 (permalink)  
Старый 29.11.2013, 10:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от NeVirus
узнать то я хочу в чем для FF коренная разница в этих вариантах
А что пишет в консоли? Может там и ответ...

Пока предположу, что именно в использовании имени у функции.
Ответить с цитированием
  #9 (permalink)  
Старый 29.11.2013, 10:37
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

NeVirus, а это return false зачем? Ну и ajax
Ответить с цитированием
  #10 (permalink)  
Старый 29.11.2013, 11:18
Аспирант
Отправить личное сообщение для NeVirus Посмотреть профиль Найти все сообщения от NeVirus
 
Регистрация: 09.01.2013
Сообщений: 54

Сообщение от ksa Посмотреть сообщение
А что пишет в консоли? Может там и ответ...

Пока предположу, что именно в использовании имени у функции.
Собственно консоль и фаербаг это были первые места куда я полез за ответом - там четко написанно что функция используется раньше чем декларируется, что бы нормально работало нужно либо описывать ее сразу в аяксе (как я и сделал в итоге) либо раньше чем используешь... все четко и ясно... кроме того почему в лругих местах (буквально на 20 строчек ниже в том же скрипте....) прекрасно работает и по-старому
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка страниц с помощью ajax radikal AJAX и COMET 3 29.11.2012 16:26
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57