sobota 5. března 2011

Hlášky.net

Rozhodl jsem se přeprogramovat můj web Hlášky.net. Hlášky, které jsou teď, jsou nedodělané a v podstatě amatérsky naprogramované, tím myslím, že jsou napůl objektové a hlavně JavaScripty, které jsem tam použil bych dnes psal daleko líp. Tak přece jenom za ty tři roky, když jsem je dělal, jsem se naučil víc než dost k tomu, abych dokázal napsat něco lepšího.

Nepočítám s tím, že bych web dostal nějak do vysokých návštěvností, ale zkusil jsem web jen trochu propojit s Facebookem a návštěvnost na něm se po pár kliknutí na tlačítko "Líbí se mi" v podstatě zdvojnásobila. Dnes je to cca 120 unikátních IP adres za den, což mě nutí web předělat a dotáhnout. Pravda je, že propojení na Facebook je dnes slušnej základ reklamy zdarma. A co si budeme povídat, lidi spíš kliknou na odkaz na zdi FB než na odkaz reklamy někde jinde.

A teď k samotnému programováni nových hlášek. V podstatě teď ani ještě nevím jakou funkčnost tam chci mít, nechci kopírovat Lamer.cz, ale takovému tomu základu jako hodnocení, komentáře apod. se stejně nevyhnu.
Jediný co vím je, že celej web chci postavit na bázi Ajaxu, což může být trochu problém, pokud bych nedělal klasické odkazy ale jen načítání obsahu do elementů. Bez pevných odkazů si neškrtnu ani moc na Googlu ve výsledcích hledání. Vymyslel jsem proto systém, který tak trochu využívá Facebook, ale jen já ho budu využívat naplno a přesněji. Pro nové hlášky jsem si vybral php framework CodeIgniter a javascriptový framework jQuery.

Takže úkol č.1 je:
Vytvořit funkcionalitu, která při kliknutí na odkaz změní adresu URL v prohlížeči, ale nerefreshne stránku. Ovšem samozřejmě, že chci změněnou adresu nějak získat a vyvolat. Toho docílím jen jednoduchým JavaScriptem a Ajaxem, který mi pošle změněnou adresu na server, od kterého obdržím zpět potřebnou stránku či jiný response. Cíl je daleko složitější než se zdá. Prozradím jen, že změnu adresy bez obnovení stránky jsem docílil voláním adresy se znakem #, který odkazuje vždy na element na stránce, takže Vám posune stránku na pozici elementu, který má parametr pojmenovaný jedinečným výrazem za znakem # v URL. Ale posunování taky nechci, tak musím jen dávat pozor, aby se nějaký element nejmenoval stejně jako část odkazu za znakem #. Samozřejmě, že nemohu poslat Ajaxem na server požadavek s tímto znakem, protože to CodeIgniter neskousne (standartně). Další problém byl, že když někdo obnoví adresu například http://hlasky.net/#/neco/dalsiho, tak mu to musí načíst kompletně vše kde se původně nacházel. Prostě stejná funkce obnovení stránky jako u jiných webu. Toto jsem také ošetřil. V podstatě celý tohle mám napsaný a provázaný s php frameworkem tak, že pro něj se nic nezměnilo a funguje stejně jako bez JavaScriptu, tedy zejména bez Ajaxu, což byl cíl. Chybí mi ošetřit ještě jednu maličkost, ale víceméně úkol č.1 ovládá celý nějakých 120 řádků v jQuery a čistého JavaScriptu + drobné úpravy na straně serveru.

Základ mám tedy hotový a teď už pomalu přecházím na samotný vývoj celého webu, momentálně mám hotovou jazykovou mutaci a napojení na šablonovací parser CodeIgniteru, takže už generuji menu s odkazy co mi načítají obsah bez refreshe stránky, ale se změnou URL v prohlížeči :-) Pokračovat budu snad zase během dnešního večera.

Žádné komentáře:

Okomentovat

 
]]>