Czy przeglądarka może pamiętać dane w formularzu pomimo ponownego wygenerowania strony ?

0

Powiedzmy że aplikacja składa się z dwóch stron:
strona A (click) -> strona B

na stronie B jak naciskam przycisk wysyłam formularz. Jest to formularz niewidoczny dla użytkownika:


<button click="submitForm">Click</button>
	
<form id="testForm" action="www.externalServer.com">
	<input type="hidden" name="number" type="text" />
</form>
 
submitForm() {
	//Pobieram liczbę z serwera i zapisuje w formularzu.
	var data = ajax call to server()

	onAjaxSuccess() {

                //zapis otrzymanych danych do formularza
		$("name=number).val(data.number);

		doOtherStuff();
	}
}

doOtherStuff() {

	//metoda robi kolejny strzał do serwera i przekazuje pobraną chwilę temu liczbę odczytując ją z formularza

	var number = $("name=number).val()
	ajax call to server(number);

	onAjaxSuccess() {

		$('#testForm').submit();
		// dalej przekierowanie do storny A
	}
}

Problem jest taki że za pierwszym razem jeżeli przejdę ze strony A do strony B i na stronie B nacisnę przycisk który wywoła metodę submitForm() to do input w formularzu zostanie przypisana wartość np. 333.

Robię znowu tą samą ścieżkę przechodzę ze strony A do strony B i naciskam przycisk wywołujący metodę submitForm() -> W tym momencie jakimś cudem do formularza nie zostaje przypisana nowa wartość pobrana z serwera tylko zostaje stara 333.

Ja nie jestem w stanie odtworzyć tego, ale czy jest to możliwe że w formularzu zostają stare dane, przeglądarka je pamięta i nadpisuje nie pozwalając na przypisanie nowych danych ?

Jak sobie z tym poradzić ?

0

Nawet jeśli zapisuje to i tak to nic nie zmienia ponieważ przy podmianie wartości przez js przeglądarka tego nie blokuje. Masz pewnie jakiś błąd albo w logice skryptu, albo przechowujesz wygenerowaną liczbę w sesji i jest ciągle taka sama, albo przechowujesz ją cały czas w zmiennej na którą jest if że jeśli nie istnieje to pobierz z serwera.

0

w 90% ten skrypt działa poprawnie w tym u mnie, natomiast zdarzają się przypadki że dzieje się to co opisałem wyżej czyli zostają stare wartości w formularzu. Mimo tego że bardzo chciałem nie odtworzyłem tego. Nie przypisuje otrzymanych danych z serwera do żadnej zmiennej tylko od razu do formularza i potem z niego też odczytuje.

0

Nie wiemy jaki dokładnie zakres wartości Ci się zwraca, bo jeżeli jest to losowa liczba z przedziału 1-1000 to zawsze, są szanse, że wylosujesz jakąś liczbę ponownie i "zdarzające się przypadki" masz wyjaśnione :P.

0

Po stronie serwera dbam o to żeby się nie powtórzyła

1 użytkowników online, w tym zalogowanych: 0, gości: 1