Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   странность с ajax (https://javascript.ru/forum/css-html-firefox-mizilla/43265-strannost-s-ajax.html)

NeVirus 29.11.2013 08:51

странность с 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й… делают одно и то же по сути только до разных скриптов стучаться да аргументы другие посылают... кто ни будь знает в чем может быть дело?

ksa 29.11.2013 08:58

Цитата:

Сообщение от NeVirus (Сообщение 283434)
Так обычно я таскаю данные до ПХП скриптов и назад (ну просто удобнее мне так структурировать) и все нормально работает
$(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};

ksa 29.11.2013 09:01

Цитата:

Сообщение от NeVirus (Сообщение 283434)
но вот сегодня Огнелис взбунтовался и отказался такое выполнять… и потребовал вот только так и никак иначе
$(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};

ksa 29.11.2013 09:01

Цитата:

Сообщение от NeVirus
кто ни будь знает в чем может быть дело?

А может таки начать писать без синтаксических ошибок для начала?

NeVirus 29.11.2013 09:19

ну понятное дело примеры взял с потолка именно для примера что бы наглядно было в чем разница (каюсь не проверил их на работоспособность)... вот настоящий код:
$(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);
};


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

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

ksa 29.11.2013 09:27

Цитата:

Сообщение от NeVirus (Сообщение 283445)
вот настоящий код:
$(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);
	}
);

Зачем давать имя функции (как у тебя) - я х/з... При том такое длиное! :D

NeVirus 29.11.2013 09:38

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

P.S. мне просто удобнее отражать в названии функции ее преднозначение (потом в будущем намного проще вспоминается что и откуда, хотя комментарии конечно тоже никто не отменял)... и иногда получаются такие вот динозавры :)

ksa 29.11.2013 10:05

Цитата:

Сообщение от NeVirus
узнать то я хочу в чем для FF коренная разница в этих вариантах

А что пишет в консоли? Может там и ответ... :)

Пока предположу, что именно в использовании имени у функции.

Rise 29.11.2013 10:37

NeVirus, а это return false зачем? Ну и ajax

NeVirus 29.11.2013 11:18

Цитата:

Сообщение от ksa (Сообщение 283454)
А что пишет в консоли? Может там и ответ... :)

Пока предположу, что именно в использовании имени у функции.

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


Часовой пояс GMT +3, время: 11:39.