Temat: Ajax, jQuery problem z skryptami

Witam mam problem z Ajaxem + jQuery
Potrzebuje na stronie skrypt, przy zaladowaniu strony jest wszystko ok, lecz po przeladowaniu jej ajaxem lub jak zostanie wywołana przez ajax skrypt przestaje działać, bo tak naprawde nie ma prawa bo strona sie przy ajax'ie nie ładuje, wiec pytanie jest takie:
Jak można to ominąć? może jakaś funkcja która rozpoznaje czy ajax sie zaladowal itp.

Odpada:
- Wywołanie skryptu w zdarzeniu ajax'a po załadowaniu bo bym musiał zmieniać teraz zbyt dużo plików.

- Wstawienie skryptu w wczytywanej stronie bo wiadomo że to nie zadziała chociaż bilbioteka prototype ma ponoć funkcje która przeszukuje dom aby odnaleźć skrypty i wywołać je. Może jQuery też ma?

Pozdrawiam

Temat: Ajax, jQuery problem z skryptami

Drogi kolego,

mylisz troszkę pojęcia bo nie masz problemu z ajaxem.. chyba że tym do zmywania podłogi (or smth). ;)

Wyjaśniam: "ajax" ( asynchroniczny javascript i xml ) to nie biblioteka doładowywana do strony.. jest to tylko jedna z funkcjonalności udostępnianych przez przeglądarkę - opakowana w JavaScript, i zwana: HttpXmlRequest (FF i inne), lub: ActionScript (IE).

Korzystając z technologii ajax wykorzystujesz biblioteki JavaScript które ładnie opakowują istniejącą bibliotekę pozwalając na szybkie pisanie aplikacji które wysyłają dane do serwera - bez przeładowania strony.

Pomijając fakt że tylko i wyłącznie Ty wiesz o co Ci tak na prawde chodzi, pozwolę sobie rozbić Twojego posta na kilka mniejszych pytań - żeby przynajmniej skierować Twój problem w kierunku wyjścia.

Cytat:
Witam mam problem z Ajaxem + jQuery

ODP: to niemożliwe

Cytat:
Potrzebuje na stronie skrypt (...)

ODP: rozumiem że ktoś ma Ci takie coś napisać - ale powinieneś wtedy zatytułować posta: potrzebny webdeveloper

Cytat:
(...) przy zaladowaniu strony jest wszystko ok, lecz po przeladowaniu jej ajaxem lub jak zostanie wywołana przez ajax skrypt przestaje działać (...)

ODP: "przeładowanie ajaxem" rozumiem jako odświeżenie strony przy użyciu javascript.. ale "wywołanie strony ajaxem" jest dla mnie w ogóle nie zrozumiałe. Zmieniasz parametr "document.location.href" na tą samą stronę i to nazywasz "wywołaniem przez ajax"?

Cytat:
(...) bo tak naprawde nie ma prawa bo strona sie przy ajax'ie nie ładuje (...)

ODP: teraz już wszystko jasne - nie ma prawa... bo nawet Twój "ajax" nie wie co ma zrobić w tej sytuacji...

Cytat:
Jak można to ominąć? może jakaś funkcja która rozpoznaje czy ajax sie zaladowal itp.

ODP: w końcu piszesz z sensem. Jeżeli masz problem z tym że nie załadował Ci się jQuery to możesz to bardzo łatwo sprawdzić.
..proste if () - powinno załatwić sprawę.

var sprawdzamyCzyJestJQ = function () {
if ($ == undefined) {
window.alert('Nie bangla, bo nie ma jeszcze obiektu jQuery.');

//a teraz zabieg pozwalajacy przeczekac ladowanie jQuery
var timeout = 2000; // = 2sec
window.setTimeout(function () { /*tutaj wstawiasz ponowne wywolanie swojej akcji*/ return sprawdzamyCzyJestJQ(); }, timeout);
} else {
window.alert('Bangla! :)');
}
};

window.onload = sprawdzamyCzyJestJQ();
..dzięki takiemu zabiegowi dowiesz się czy nie popełniłeś literówki i jQuery się ładuje porpawnie.

Cytat:
Odpada:
- Wywołanie skryptu w zdarzeniu ajax'a po załadowaniu bo bym musiał zmieniać teraz zbyt dużo plików.

ODP: ŻYCIE - jak dbasz tak masz. Lepiej zainwestować w dobry skrypt.. albo jakieś szkolenie które w efekcie pozwoli Ci takie skrypty pisać - niż "mieć do zmiany zbyt dużo plików".

Cytat:
- Wstawienie skryptu w wczytywanej stronie bo wiadomo że to nie zadziała chociaż bilbioteka prototype ma ponoć funkcje która przeszukuje dom aby odnaleźć skrypty i wywołać je. Może jQuery też ma?

ODP: zaimponowałeś mi tym fragmentem. jQuery ma takie coś - oczywiście. Trzeba tylko CZYTAĆ DOKUMENTACJĘ.

Domyślam się wielkim kołem że robisz proste zapytanie .get() które zwraca jakiegoś HTML-a i nie potrafisz sobie poradzić z uruchomienie skryptów zawartych na tej doładowywanej stronie.

Człowieku - daj zobaczyć. Fragment kodu, zrzut ekranu, cokolwiek!!
Po drugiej stronie nie siedzi gromada myślicieli którzy już wiedzą co Ci dolega i jeszcze w dodatku napiszą to za Ciebie.

Oto link do dokumentacji jQuery: http://docs.jquery.com/
Polecam pozaglądać - bo najwidoczniej sporo informacji na ten temat Ci brakuje.
Poza tym, w wolnej chwili zaglądnij do bazy wiedzy: http://www.google.pl/search?hl=pl&num=100&q=jak+pisa%C...
..nie będzie to złym pomysłem.

Domyślam się że wydrzesz się na mnie bo zdenerwujesz się po mojej wypowiedzi - ale weź pod uwagę że jestem pierwszą osobą która zechciała odpowiedzieć na tego posta.

Pozdrawiam,
Sławek F.
Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: Ajax, jQuery problem z skryptami

Kolego Sławku - pojechałeś :D
Paweł M.

Paweł M. Data Scientist

Temat: Ajax, jQuery problem z skryptami

Mirosław Bogacz:
Witam mam problem z Ajaxem + jQuery

Hej

Podzielam słowa kolegi, że trochę pomieszałeś, ale zerknij na to, mam wrażenie, że to problem o, którym Ty piszesz

http://stackoverflow.com/questions/235967/calling-a-jq...

btw. poczytaj o xss, żebyś sobie bidy nie narobił używając eval

http://ha.ckers.org/xss.html

PozdrawiamPaweł M. edytował(a) ten post dnia 24.04.09 o godzinie 16:26

Temat: Ajax, jQuery problem z skryptami

Dziękuje wszystkiem za odpowiedz. Jednak wywołanie poszło w onreadystage lub cos takiego nie pamiętam jak to się pisze :p

A ten ajax to jak z motyką na słonce przy dużym projekcie gdzie w połowie została zmieniona koncepcja, z normalnego ładowania strona na ładowanie stron ajaxem :)

"var sprawdzamyCzyJestJQ = function () {
if ($ == undefined) {
window.alert('Nie bangla, bo nie ma jeszcze obiektu jQuery.');

//a teraz zabieg pozwalajacy przeczekac ladowanie jQuery
var timeout = 2000; // = 2sec
window.setTimeout(function () { /*tutaj wstawiasz ponowne wywolanie swojej akcji*/ return sprawdzamyCzyJestJQ(); }, timeout);
} else {
window.alert('Bangla! :)');
}
};

window.onload = sprawdzamyCzyJestJQ();"

to raczej nie zadziała bo po wczytaniu do DIV'A podstrony ajaxem onload nie zachodzi.

I sory za brak źródeł ale to raczej by sie nie spodobało szefowi jak by zobaczył tutaj takowe :)

konto usunięte

Temat: Ajax, jQuery problem z skryptami

Mirku, skoro korzystacie z jQ to nie byłoby łatwiej wykorzystać polecenie live lub plugin o nazwie livequery ? Ona idealnie działa jeżeli ładujesz dynamicznie ajaxem różne elementy które również z niego korzystają.

Temat: Ajax, jQuery problem z skryptami

Mirosław Bogacz:
I sory za brak źródeł ale to raczej by sie nie spodobało szefowi jak by zobaczył tutaj takowe :)

Ciekawe, czy podoba mu się, że nie umiesz tego zrobić? NMSP

A poważnie, to musisz dokładniej wyjaśnić co robisz (nawet bez pokazywania kodu, skoro on taki hiper tajny), bo po prostu nie mamy szklanych kul.
jQuery ma też coś takiego jak $.ajaxStop, gdzie ta się podpiąć callback po zakończenia dowolnego ajaksowego zdarzenia. Możesz z tego korzystać prawie jak w windows.onload

Zresztą takich zabawek jest więcej, o tutaj: http://docs.jquery.com/AjaxRafał Nowak edytował(a) ten post dnia 16.07.09 o godzinie 18:23

konto usunięte

Temat: Ajax, jQuery problem z skryptami

Przepraszam za OT, ale mam kilka pytań do kolegi, który rzekomo po kimś pojechał.

Czy możesz wytłumaczyć szerszej publiczności czym jest FF i zapytanie .get()? Czy kolega wie czym jest ActionScript a czym ActiveX? Miło byłoby też, gdybyś wytłumaczył jakim cudem działa Tobie porównanie niezdefiniowanej zmiennej z jakąś wartością (tak, 'undefined' to też wartość). I czemu uważasz, że wykrycie wartości pod zmienną "$" to dobry sposób na wykrycie jQuery?
Sławomir Furgała:
Domyślam się że wydrzesz się na mnie bo zdenerwujesz się po mojej wypowiedzi - ale weź pod uwagę że jestem pierwszą osobą która zechciała odpowiedzieć na tego posta.

Jak widać nie wydarł się. Ze swojej strony polecam przykładać większą uwagę do własnych wypowiedzi.Tomasz Elendt edytował(a) ten post dnia 16.07.09 o godzinie 22:13

Temat: Ajax, jQuery problem z skryptami

W sumie to już nie aktualne, kod nie jest hpier tajny ;D, na pewno przydadzą się wasze wypowiedzi przy następnym projekcie :). Hmm a znacie może jakąś historie do ajax?

Dzieki wielkie.
Pozdrawiam,
MirekMirosław Bogacz edytował(a) ten post dnia 23.07.09 o godzinie 07:47

Temat: Ajax, jQuery problem z skryptami

Ja używam Prototype to ładowania ajaxem treści do divów i tu można to zrobić tak:
Przykład funkcji ładującej:
function Przeladuj(link,url,div)
{ var pars = link+'&ajax=1';
var myAjax = new Ajax.Updater(div, url, { method: 'get',
parameters: pars,
evalScripts: true
});}

I potem w środku w divie trzeba zrobić tak:
<script>
Test = function()
{
alert('test');
}
Test();
</script>

I wszystko dobrze działa pozdrawiam!
Marcin Ważny

Marcin Ważny Student, Wyższa
Szkoła Informatyki i
Zarządzania w
Rzeszowie

Temat: Ajax, jQuery problem z skryptami

Mirosław Bogacz:
W sumie to już nie aktualne, kod nie jest hpier tajny ;D, na pewno przydadzą się wasze wypowiedzi przy następnym projekcie :). Hmm a znacie może jakąś historie do ajax?

Dzieki wielkie.
Pozdrawiam,
Mirek


Technologia komunikacji między językiem po stronie przeglądarki JAVASCRIPT, a środowiskiem serwera powstała około roku 1998, jednakże dopiero w 2005 roku została zdefiniowana, jako Asynchronous JAVASCRIPT + XML w artykule Jesse’go Jamesa Garreta współzałożyciela i dyrektora naczelnego firmy Adaptive Path z San Francisco pod tytułem „AJAX: a New Approach to Web Applications”. Mimo, iż rozszerzenie akronimu AJAX zawiera język XML, odpowiedź, może być także w innym formacie. Oczywiście technologia dynamicznego przesyłania danych istnieje od czasów dużo wcześniejszych. W 1996 Microsoft wprowadził element iframe, a rok później Netscape znacznik <layer>. W 1998 roku Microsoft wprowadził technikę Remote Scripting (MSRS), która umożliwiała asynchroniczną komunikację z serwerem, dzięki połączeniu możliwości dwóch języków: JAVASCRIPT i JAVA. I w końcu w 2002 roku początkowo obiekt XMLHTTP, zaimplementowany w przeglądarce Internet Explorer przez Microsoft, jako kontrolka ActiveX, który później stał się obiektem języka JavaScript i został zaimplementowany w większości nowoczesnych przeglądarek jako obiekt XMLHttpRequest. W IE cały czas jako AvtiveX (XMLHTTP).

PS.
Do Sławomira:
ActionScript to język z rodziny ECMAscript działający w środowisku FLASH.

ODP: "przeładowanie ajaxem" rozumiem jako odświeżenie strony przy użyciu javascript.. ale "wywołanie strony ajaxem" jest dla mnie w ogóle nie zrozumiałe. Zmieniasz parametr "document.location.href" na tą samą stronę i to nazywasz "wywołaniem przez ajax"?

AJAX nie wykonuje, ani wywołań, ani przeładowań. AJAX wykonuje wszystkie normalne żądania HTTP (GET, POST, itp), tak jak w normalnym modelu komunikacji, z tą różnicą, że robi to asynchronicznie*

*W przypadku komunikacji asynchronicznej, jaką zapewnia AJAX użytkownik wywołuje żądanie, które w tle za pomocą obiektu XMLHttpRequest, ramek iframe lub plików cookies wysyłane jest do serwera. Następnie serwer przetwarza żądanie, przy czym okno przeglądarki jest cały czas aktywne i użytkownik może cały czas wykonywać nowe operacje i wysyłać inne żądania do serwera. Gdy serwer przetworzy już żądanie zwraca odpowiedź także w tle bez odświeżania, przeładowywania całej strony.Marcin Ważny edytował(a) ten post dnia 24.08.09 o godzinie 21:06
Filip Bartłomiej Misiewicz

Filip Bartłomiej Misiewicz Wyspa Kreatywna
BiznesTrend.pl
eInwestor

Temat: Ajax, jQuery problem z skryptami

do Kolegi Sławka:
zastanawiam się, po co w ogóle uczestniczyć w takiej dyskusji, jeśli jedynym celem jest poniżenie (tak to można odebrać) pytającego.
FORA dyskusyjne są dla tych, którzy czegoś nie wiedzą, oraz dla tych, którzy chcą POMÓC. Chyba, że dla Szanownego Kolegi to jest miejsce pokazywania w jakich to 'kluczowych dla rozwoju Internetu' projektach brał udział. Rozumiem, że GoldenLine to dla wielu portal samolansowania się megalomani, ale po stronie społeczności leży to, by takie grupy jak ta nie stały się miejscem, gdzie 'samozwańczy eksperci' pokazują jaki to motłoch jest niedouczony i nic nie warty.
Wstydzić się nie powinien pytający - pytać zawsze warto. A to, że ktoś przeczytał jeden tutorial więcej do niczego nie upoważnia, tym bardziej do wyśmiewania.

Następna dyskusja:

[Simple jQuery date-picker]...




Wyślij zaproszenie do