Tábla kezelő webalkalmazás
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: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?
■ 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;
...
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?
függvény...
-------
A 2. kérdésedre (ha jól értem, mit szeretnél) inkább JSON-t használnék, de konkrét kódot nem tudnék írni így hirtelen.
Bár nem teljesen tiszta, hogy mit is csinálnál és miért nem boldogultál az XML változattal.
Nem kizárt, hogy egyszerűbb lenne HTML+JS helyett XML+XSL-t használni. (bár ezt néhány régi böngésző nem szereti)
1,var egyedi_fn = function ()
3, kliens oldalon ilyenről nem tudok.
Ebben az esetben nem
Ez alatt mire gondolsz? Hogy látja? Tudsz példát mutatni?
Szerintem el akarja takarni
(sose értettem, egyesek miért írják referernek a referrert... :-) )
sose értettem, egyesek miért
originally a misspelling of referrer
A referer elrejtésének meg nem igazán van értelme. Ha már eleve külső linkeket raksz az oldalra, akkor add már meg a tiszteletet, hogy meg is kapják ezt az információt.
Én is linkeltem egy
Elrejteni meg - ha jól értem - nem magát a referert szeretné a kérdező, csak a konkrét oldalt, aminek az URL-jében esetleg tervezési hiba folytán olyan infók is belekerültek, amik... hát nem teljesen publikusak. Persze ez csak sejtés, én ebben az esetben törném a fejem valami hasonlón.
(extrém hülye példa: user adatlapja csak belépve lenne elérhető, az adatlapra mutató URL: http://szerverem.neve/adatlapok/usernev/ - ilyenkor a refererben ott lesz a felhasználó azonosítója, amit egyes, hozzám hasonlóan paranoid alakok nem szeretnek publikálni. :-) )
Szerver oldali átirányítás
example.com
-on egy linked a következő formában:http://example.com/redirect?url=http%3A%2F%2Fweblabor.hu%2Fforumok%2Ftemak%2F112542
és a szerver oldalon csinálsz egy 301-es vagy jobb esetben 303-as átirányítást.Biztonsági okokból talán még jobb, ha nem közvetlenül megadható az URL mint paraméter, hanem annak csak egy azonosítója ebben az esetben például
http://example.com/redirect/123
, ami szintén elvégzi a megfelelő átirányítást.Próbálkoztam xml alapú
Hogyan próbálkoztál vele, és mi nem sikerült?
Függvény hívása változó alapján
fv1: function fv1() {
},
fv2: function fv2() {
}
};
var valtozo = 'fv1';
obj[valtozo]();
Szerintem jó az XML
2. kérdés
A javascript-tel és az XML-lel csak most ismerkedek. Ez lehet a fő oka sikertelenségemnek. Valahol olvastam, hogy a <xml src="adatbazis_struk.xml" id="adatbazis_struktura"></xml> tag-et csak az egyik böngésző támogatja és szabványban sincs benne. Természetesen én egy másik böngészőt használok... De ilyenekkel próbálkoztam:
A fő kérdés az, hogy melyik a kevésbé memória igényes és gyorsabb folyamat: folyamatosan egy változatlan XML fájlt lekérdezni vagy már eleve a javascriptben definiálni egy objektumban az egész struktúrát?
A JSON is egy jó megoldás, hasonlít PHP több dimenziós asszociatív tömbjére. Ilyet szerettem volna létrehozni már eleve a javascriptben, de csak eddig jutottam. Az objektumban a legfelső szint hiányzik, ahol a táblákat lehetne kiválasztani.
De lehet, hogy inkább az XML-t alkalmaznám, mert az úgyis sokkal népszerűbb. A http://hu.wikipedia.org/wiki/JSON XML részében az alsó megoldás elég egyszerűnek és könnyen átláthatónak tűnik.
Csak most egy statikus fájlt
Miért, szerinted a kliens oldalról szemlélve a kettő között van különbség? Ott meghívsz egy URL-t, és arra kapsz egy választ. A kliens nem tudja, hogy ez statikus vagy dinamikusan generált, sőt nem is kell tudnia róla.
XSLT
Ha több mint tíz éves gépeken fog futni a program, akkor érdemes foglalkoznod a memória- és sebességproblémával, egyébként pedig nem.
XSLT hogyan?
Csak azért kérdezem, mert múlthéten megnéztem, mit szól a mobilom egy XML+XSLT kimenethez és hát... szóval igen csúnyán nézett rám a böngészője. ;-)
(végül közölte, hogy ezzel nem tud mit kezdeni, de biztos-ami-biztos, elrakta, mintha valami RSS feed lett volna :-)) )
Egy XML-ben lehet tárolni
Nem erre gondoltam egyébként,
Macerás
Memória/sebesség