Podivné chování snippetů (těch starých)

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Honza Kuchař
Člen | 1662
+
0
-

Ahoj, dneska jsem narazil na zajímavou věc. Přijde na server AJAXový požadavek. Pokud se nějaký snippet překresluje, tak dostanu něco ve stylu

{"state":{"studioHodiny-editingID":null},"snippets":{"snippet--flashes":"\t\t<div class=\"flash info\">test: 1<\/div>\n"}}

což je naprosto v pořádku. Ovšem pokud se žádný snippet nepřekresluje, tak se odešle normální výstup. Vyrenderuje se celá stránka. (odešlou se i korektní hlavičky: text/html, UTF-8)

Docela mě to zmátlo.

Setkal se s tím už někdo nebo je chyba někde u mě?

Honza Marek
Člen | 1664
+
0
-

Já jsem se setkal s tím, že ve firefoxu mi na localhostu obvykle na první kliknutí nefunguje autodetekce ajaxu, čili se posílá celá stránka. Na druhý klik už to fungovává. Ale to asi neni to samé.

nAS
Člen | 277
+
0
-

Možná plácám blbosti, AJAX jsem zkoušel pouze v nějaké prehistorické verzi, ale není to to samé jako David ukazoval na Webexpu, že po provedení AJAXového požadavku, který nic nevracel, ukončil aplikaci?

	/**
	 * This event is triggered when dragging stops.
	 *
	 * @param  string fruit ID
	 * @param  int 	  left position
	 * @param  int 	  top position
	 * @return voud
	 */
	function handleMove($fruit, $x, $y)
	{
		// put fruit position into session
		$session = $this->getSession('desktop');
		$session->positions[$fruit] = array((int) $x, (int) $y);

		// terminate this script
		$this->terminate();
	}
Honza Kuchař
Člen | 1662
+
0
-

Hmm, to mě nenapadlo. Já myslel, že to má kvůli rychlosti. Viš, ale když píšeš aplikaci s 20 komponentami na stránce, tak jaksi nevíš, jestli se to bude překreslovat nebo ne. :(

Honza Kuchař
Člen | 1662
+
0
-

Znovu otevírám, na starší revizi Nette to funguje jak má. Dostanu:

{"state":{"id":null,"tabs-tab":null}}

Funkční ukázka: http://tabcontrol.projekty.mujserver.net/ Přetáhněte tab na jinou pozici. Nette rev.: zda se že 0.9.1

	const VERSION = '0.9';
	const REVISION = '$WCREV$ released on $WCDATE$';

V 0.9.2-dev se mi pošle celá stránka. Tzn. ten terminate() je jen workaround.

Tzn. vypadá to na bug ne?