Prado и неговия page state
Имах проблеми с намирането и установяването на един бъг. Уебсайта се разработва с Prado фреймуорк-а на последна версия. Екстенднал съм TPage класа и използвам моя MTPage клас. Там имам функция използвана от TDropDownList с AutoPostBack при смяна избрания елемент, а самата функция изпълнява следното: $this->Response->reload(). Този TDropDownList е в MainLayOut.tpl файла, защото трябваше да присъства на всяка страница, но бях забравил да използвам следния синтаксис при биндването:
if (!$this->Page->IsPostBack && !$this->Page->IsCallBack) { // do it here }
Това е причината, когато събмитвах друг TDropDownList на страницата, той изпъляваше и кода във въпросната функция описана по-горе, което води до опресняване на страницата. Глупаво …
Ok може би се чудите защо заглавието на поста е свързано с page state – исках просто да споделя моето скромно мнение за page state идеята, която ми бе напомнена от този проблем. Наистина намирам този фиичър за доста полезен, взет от ASP.NET и разбира се има някои проблеми, когато се налага да държи повече информация – главно от гледна точка на перформантността. Но от друга страна по-този начин могат да се спестят допълнителн заявки към базата – като ситуацията по-горе – заявка за попълване на дропдауна. Друга много добра възможност е използването му като сторидж на важни променливи, на които програмиста може да разчита, че не могат да бъдат пипани от крайния потребител, а това е именно поради енкрипцията на данните.
Прочети статията на: English
Все още няма коментари.