Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Częściowe przeładowanie strony
Forum PHP.pl > Forum > XML, AJAX
Niktoś
Witam nie wiem jak wyciągnąć dane z ajaxowego żądania i nadpisać dom np.diva.Mam prostą funkcje:
Cytat
$.ajax({
url: pathname,
success: function (data) {
$('#cos').html(data);

}
});

Funkcja przeładowuję stronę i wynik zapisuje do zmiennej data.I teraz mam przykładowo:
Cytat
<div id="cos"></div> Jak nadpisać tego diva?
$.ajax({
url: pathname,
success: function (data) {
$('#cos').html(data.cos);

}
});

Czy dobrze kombinuje?
tolomei
Poczytaj ten artykuł sobie.
Jest bardzo przyjazny więc myślę, że trochę rozjaśni.
wookieb
Proszę wstawić BBCode
Orzeszekk
Cytat(Niktoś @ 2.04.2012, 18:23:01 ) *
Witam nie wiem jak wyciągnąć dane z ajaxowego żądania i nadpisać dom np.diva.Mam prostą funkcje:
$.ajax({
url: pathname,
success: function (data) {
$('#cos').html(data);

}
});

Funkcja przeładowuję stronę i wynik zapisuje do zmiennej data.I teraz mam przykładowo:
<div id="cos"></div> Jak nadpisać tego diva?
$.ajax({
url: pathname,
success: function (data) {
$('#cos').html(data.cos);

}
});
Czy dobrze kombinuje?


uzycie $(OBIEKT_DOM).ajax(parametry) powoduje wykonanie ajaxowego żądania i zapisanie jego wyniku w OBIEKT_DOM (miedzy jego tagiem otwierajacym i zamykającym), usuwa starą zawartosc z tego co pamietam.

jesli chcesz z jakichś powodów najpierw zaladowac do zmiennej, a pozniej wpisac zawartosc, uzyj $.load(parametry).
Niktoś
Cytat
Proszę wstawić BBCode

@Wookieb w edytorze nie można zagnieżdżać znaczników(np.[b])oprócz jak widać w quote),zależało mi na wyróżnieniu pewnych wartości.

Kurcze ja nie czaje Ajaxa w C#.NET.O co chodzi mam tak skonstruowany tag:
  1. <asp:Button id="but" runat="server" OnClick="event_serwera" OnClientClick="funkca_po_stronie_clienta()" />

Klikam w przycisk wywoływany jest event po stronie servera(przeładowanie całej strony) co równa się wykonaniu eventów page init,page load i docelowego eventu ,potem idzie ajaxowy request w funkcji "funkca_po_stronie_clienta()".
Gdy usunę event OnClick="event_serwera" ,wykonywany jest request ajaxowy ,jednakże usunięty event zawierał pewne operacje robione po stronie serwera.Teraz przeładowanie ajaxem ,nie będzie wykonywało procesów zawartych w tym evencie ,gdyż go nie ma,a procesy te są tam kluczowe.
Mało tego, gdy jest powyższa funkcja i event, wykonanie eventu ajaxowego asynhronicznego zostaje przerywany(w ff jest aborted),gdyż podczas tego procesu wykonywany jest post(submit) po stronie serwera.Włączenie async:false powoduje wykonanie się najpierw żądania serwera(POST),potem leci nieasynhroniczne żądanie AJAXA,efekt taki ,że przeładowuje tą samą stronę dwa razy.

Orzeszek pokombinuje jeszcze z $.load.
Orzeszekk
Daj sobie siana z webformsami i przejdz na mvc to bedziesz mial jakąs kontrole nad tym co sie dzieje.

ewentualnie jak chcesz to są w webformsach kontrolki ajaxowe dzieki ktorym mozesz w kodzie C# wykonywac ajaxowe zapytania. Np kontrolki ktore odswiezaja ci sie co minute. wiecej w ksiazce MCTS 70-515 programming in asp.net 4.0 ktora bez problemu znajdziesz na necie, bodajze 7 rozdzial.

mozliwe ze zle podchodzisz do problemu od strony projektowej i nadmiernie kombinujesz zamiast rozdzielic to np na 2 widoki czy cos
Niktoś
Kombinacje są i to alpejskie.Importowałem koszyk na inną stronę,a tam się strona inaczej zachowuje(strona z 2-ma gridview+wyszukiwarka,dodatkowo mieli tam 2 typy requestów+1 serwerowy,serwer transfer)),prawdziwy kombajn.
Musiałem jakoś zrobić aby koszyk ten nie miał żadnego wpływu na stan strony.Zrezygnowałem z ajaxa ,opcji load w jquery i skorzystałem z updatepanel mode conditional.Podczepiłem triggery na przyciski,w evencie anuluj do poszczególnych elementów zastosowałem enableviewstatemode=false,przez co stan kontrolek zostaje zresetowany,a następnie chowam całego diva z koszykiem.Problemem był viestatemode ,który zapamiętywał stan kontrolek,przy anulacji.

Sprawę załatwiłem,ale nadal nurtuje mnie ten problem przy zwykłym ajaxowym requeście gdzie w kontrolce mamy dwa atrybuty onclick i onclientclick i równoległe żądania,ale ten temat to chyba do codeguru.pl
Orzeszekk
webforms jest wg mnie slabym frameworkiem, a to dlatego ze dziala na opak sieci www.
oni probowali zrobic framework ktory bedzie w www dzialal jak aplikacja desktopowa.
ale nie da sie tego zrobic super z uwagi na bezstanowosc http i rozdzielenie procesu na klienta i serwera i zawsze w webformsach bedziesz mial jajca. w ogole te wszystkie zbędne zapytania ajaxowe ktore mozna zastąpic javaskryptem embeddowanym w widoku to tragedia.
predkosc dzialania code guru stanowi raczej antyreklame microsoftu.

webforms to przejsciowka dla developera aplikacji desktopowych zeby popisal sobie w nim, troche, obczail www i przesiadl sie na MVC które bardzo dobrze nadaje sie do webu.
Niktoś
Nie których rzeczy nie zaimplementujesz w MVC ,architektury tj. MS Enterprise Library,AppFabric,WMI itp.Chyba ,że się mylę.Mniejsze kombinacje przy stawianiu webservice ,łatwa implementacja webmethod.Nie przekreślaj całkowicie webformsów,nie są aż takie złe -tylko z tym ajaxem strasznie.Wydaje mi się ,że webformsy mają większe/szersze możliwości od MVC choć może to są moje subtelne odczucia.
Orzeszekk
Cytat(Niktoś @ 7.04.2012, 01:27:41 ) *
Nie których rzeczy nie zaimplementujesz w MVC ,architektury tj. MS Enterprise Library,AppFabric,WMI itp.Chyba ,że się mylę.Mniejsze kombinacje przy stawianiu webservice ,łatwa implementacja webmethod.Nie przekreślaj całkowicie webformsów,nie są aż takie złe -tylko z tym ajaxem strasznie.Wydaje mi się ,że webformsy mają większe/szersze możliwości od MVC choć może to są moje subtelne odczucia.


wyprobuj obydwie architektury i wtedy je oceniaj smile.gif jak na razie siedzisz tylko w webforms wiec twoja ocena jest subiektywna.

w MVC web servicem moze byc zwykła akcja w kontrolerze.

poza tym jak chce wykorzystac 2 razy jakis kawalek kodu to nie musze robic nowej kontrolki (co za idiotyczny pomysl), wystarczy mi partial view, lub partial akcja jesli potrzebne sa jakies dane. Razorowe templaty sa 10x bardziej czytelne niz kontrolki asp ktore mieszają sie z htmlem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.