ugrás a tartalomhoz

Archívum - Júl 10, 2012 - Fórum téma

Tábla kezelő webalkalmazás

jeti · 2012. Júl. 10. (K), 23.29
Sziasztok!

Van egy javascriptes, kliens oldali webalkalmazásom, amelyben különböző táblákat lehet kezelni. Van egy közös adatmegjelenítő, adatfelvevő, adatmódosító és adattörlő függvénytár. Ezenfelül vannak egyedi függvények, amelyek az egyes táblákra specifikus funkciót valósítják meg.

1.) Hogy lehet a függvényt egy változóban eltárolt név alapján meghívni? Például az egyedi_fv(); szeretném kifejezni valahogy így: var fvnev="egyedi_fv"; fvnev(); de ez így nem működik, nem is tudom, hogy van-e ilyen, de valami ilyenre lenne szükségem. Más nyelvben olvastam ilyenről.

Az összes táblát egy exportáló függvény használja csak egyszerre. Ez nem működik túl hatékonyan. Jelenleg a javascript fájlban határozom meg a táblák szerkezetét. Valahogy így néz ki a táblák struktúrája és elérése:

 switch(tabla) {
 case 'tabla_neve':
  adatstruk.tabla='tabla_neve';
  adatstruk.tablanev="Tábla neve";
  adatstruk.tablafv=egyedi_fv; //ez csak terv -> egyedi_fv();
  adatstruk.felirat=new Array('Mező 1','Mező 2','...');
  adatstruk.nev=new Array('mezo1','mezo2','...');
  adatstruk.tipus=new Array('text','option','...');
  adatstruk.valasztek=new Array('',new Array('opció1','opció2','...'));
 break;
... 
Ebben az esetben mindig csak egy táblához férek hozzá és az exportálásnál mindig végig kell lépkednek a táblák tömbjén és a fenti módon egyesével kiválasztani a táblákat.

2.) Tud valaki javasolni valami egyszerűbb módszert? Próbálkoztam xml alapú megoldással, de sajnos nem sikerült. (<xml src="adatbazis_struk.xml" id="adatbazis_struktura"></xml> Ebben az esetben nem fértem hozzá az adatokhoz.)

3.) Végül: vannak a programból kifelé irányú linkek is. Ebben az esetben nem szeretném, hogy a hivatkozott lap lássa az legutóbbi előzmény képében a webalkalmazásomat. Be lehet azt állítani, hogy úgy viselkedjen, mintha egy új fület nyitottam volna a böngészőben és nincs előzmény?
 

DRY

eddig bírtam szó nélkül · 2012. Júl. 10. (K), 21.29
Bocs, ez python, de épp ezzel játszottam, meg a nyelvnek egyébként sincs itt jelentősége...
Eszembe jutott ama bizonyos Don't Repeat Yourself elv.
Szálkezelést próbálgattam (szálbiztos és nem szálbiztos függvények használata multithread környezetben hogy megy, hogyan tudom bizonyítani, hogy a nem szálbiztos függvény ilyen esetben hibásan működik)

A tesztek indítása valahogy így nézne ki:

	def main(self):
		t1=threading.Thread(target=self.runAThread)
		t2=threading.Thread(target=self.runAThread)
		t1.start()
		t2.start()
		t1.join()
		t2.join()
Itt ugye van néhány ismétlődés, ami elég rondán néz ki.
Lecserélhetem ilyenre:
	def main(self):
		threadLista=(threading.Thread(target=self.runAThread),threading.Thread(target=self.runAThread))
		for t in threadLista:
			t.start()
		for t in threadLista:
			t.join()

Ez így kicsit rugalmasabb (egy sort kell csak módosítani, ha újabb szálat akarok indítani, netán másik függvényt futtatni az újabb szálban), de nem lett sokkal jobb a helyzet, itt is ismétlődik a kód egy része, de...
Lehet ezt tovább szépíteni? Hiszen előbb el kell indítani valamennyi szálat, csak utána mehet egyenként a join...

Jó, ez most egy nagyon egyszerű példa, de hasonló helyzet talán nagyobb méretekben is előfordulhat. Ilyenkor mi a teendő? Van hova egyszerűsíteni? Vagy ilyenkor jön a vállrándítás, hogy minden nem lehet tökéletes?
 

PostgreSQL + Full Text Search

dave · 2012. Júl. 10. (K), 14.53
Sziasztok!

Egy ideje már játszadozok a PostgreSQL-lel, most jutottam el odáig, hogy full text keresést is használnék. Egyelőre csak tapogatózom, az alábbi kérdéseim merültek fel:

1. Melyik a legjobb megoldás a megvalósításra (sebesség, egyszerűség tekintetében)? A beépített FTS, vagy a "külső" megoldások? Olvasgattam a Solr-t és a Sphinxről, nekem jobban tetszik, hogy "házon belül" marad a megoldás, nem kell külön szoftvert telepítenem a szerverre. Milyen előnyei lehetnek az utóbbiaknak?
2. Magyar nyelv esetén mennyire működőképes a dolog? Értem ez alatt a stop szavakat és a szótövezést. Kereséskor a szótövezés automatikusan működik vagy úgy kell szerkeszteni az SQL lekérdezést? Mi a helyzet az elválasztással?
3. A sorba rendezés része nem teljesen tiszta, arról valamit tudnátok mondani pár szóban? Ha valami precedenciát szeretnék, azt ki lehet kényszeríteni. Itt ilyenre gondolok, hogy van egy topic táblám title és body mezővel, akkor a title-ben lévő találatok előbb helyezkedjenek el, mint a body.

Köszi,
dave
 

CI query cache

iddqd · 2012. Júl. 10. (K), 10.37
Sziszatok,

Elsősorban codeigniter-t ismerőktől kérdezném, van e valakinek esetleg valamilyen tippje vagy módszere arra, hogy hogyan lenne érdemes megoldani részleges adatbázis cache -elést. Ritkán változó,
de adatbázisban tárolt elemekről lenne szó, mint pl navigációs elemek stb,
ezeket szeretném betenni.
Alapvetően a problémám, hogy a CI a cache -elést általánosan engedélyezi, azaz ha bekapcsolom, minden lekérdezésre érvényes, extra ki kell kapcsolni amelyiknél nem akarom. Tehát a query -ik 90% -ában külön bele kellene írnom hogy ne tegye. Ki lehet ezt kerülni? Vagy esetleg az én tudásom hiányos és van erre valamilyen módszer?
Köszönöm.
Üdv, Balázs