Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Расширение метода ядра (https://javascript.ru/forum/jquery/29208-rasshirenie-metoda-yadra.html)

see613 19.06.2012 19:15

Расширение метода ядра
 
Здесь http://james.padolsey.com/javascript...s-with-jquery/ есть статья о неплохой штуке - простой реализации кросс-доменнных аяксов. Здесь https://github.com/padolsey/jQuery-P...xdomainajax.js автор этой статьи расширил метод .ajax, чтобы если в адресе есть http(s), то выполнялся бы кроссдоменный запрос.
Нужно засунуть данный код не в .ajax, а в отдельный метод .ajaxAdvanced. У меня выдает ошибку что параметр _ajax не определен. И вообще както я не до конца понимаю что здесь происходит, похоже единственный аргумент _ajax - это функция(или метод), в конце выполняется код
return _ajax.apply(this, arguments);
но что это за функция?

Deff 19.06.2012 19:29

see613,
Там нужно поставить плагин, https://github.com/padolsey/jQuery-P...xdomainajax.js
Который похоже хакает через прокси yahooapis.com

see613 19.06.2012 19:49

так это ж вроде не плагин, а как раз расширение метода .ajax. Мне просто нужно вместо этого сделать новый метод ajaxAdvanced.

Deff 19.06.2012 20:06

see613,
Там два плагина нужны (Или расширения
https://github.com/padolsey/jQuery-P...main-ajax/test

+ За Темку!

Цитата:

Сообщение от see613
Мне просто нужно вместо этого сделать новый метод
ajaxAdvanced.

Собственно Вам тогда слегка править xdomainajax.js

*Имхо на русско-сайтах притормаживает от 3 до 20 сек загрузка

see613 19.06.2012 20:44

возможно я просто не совсем удачно объяснил в чем суть.
Цитата:

Собственно Вам тогда слегка править xdomainajax.js
В том то и штука, что у меня не получается корректно править xdomainajax.js, он выдает ошибку что параметр _ajax не определен. Я как бы не новичок в jQuery, но это мне не далось. Был бы крайне признателен, если б показали правильный код.
Вообще я предполагал, что все изменения сводятся к изменению названия метода в начале
jQuery.ajax = (function(_ajax){

и в конце
})(jQuery.ajax);

но увы

vadim5june 19.06.2012 21:52

Цитата:

Сообщение от see613 (Сообщение 182552)
.
Вообще я предполагал, что все изменения сводятся к изменению названия метода в начале
jQuery.ajax = (function(_ajax){

и в конце
})(jQuery.ajax);

но увы

А в конце зачем-только в начале
Мы же переопределяем метод
jQuery.ajaxAdvanced= (function(_ajax)
...)(jQuery.ajax)

Deff 19.06.2012 22:21

Цитата:

Сообщение от vadim5june
А в конце зачем-только в начале

Если вы метод переопределили то и вызов тож переопределите
Вызов как начальный setter идёт

vadim5june 19.06.2012 22:24

Цитата:

Сообщение от Deff (Сообщение 182582)
Если вы метод переопределили то и вызов тож переопределите
Вызов как начальный setter идёт

нет это же расширение стандартного
метода-если переопределите в конце то у Вас вообще неработающий код получится

see613 20.06.2012 07:29

vadim5june, мне как раз нужно не меняя стандартный .ajax, сделать новый метод .ajaxAdvanced. И подскажите в чем смысл последней строки?
})(jQuery.ajax);

Deff 20.06.2012 08:45

see613,
А стандартный разве меняецо ?
Там анализ - если localhost - то все по старому - если адрес не с текущего домена - тады функция идет по пути вызова API c yahooapis.com


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