Dos és Don ‘ ts: Webdynpro kontextus.
számomra úgy tűnik, hogy ezek a szabályok A teljesítmény javítására irányulnak.
van néhány megjegyzésem néhány szabályról:
- követelmény nélkül (több vezérlőben történő használat) Ne hozzon létre kontextust az Összetevővezérlő szintjén, ha szükséges, hozzon létre helyi kontextusokat, például nézetekben
az összetevővezérlő a kontextus központi hubja. Ha bármikor van olyan kontextuscsomópontja, amely több nézetben van megosztva, akkor létre kell hoznia a csomópontot az összetevővezérlőben, és más nézetekre kell leképeznie.
egy adott nézetre jellemző csomópontok közvetlenül a nézetkörnyezetben hozhatók létre, de az olvashatóság és az egységesség érdekében gyakran úgy döntök, hogy az összes kontextuscsomópontot és ellátási metódust központosítom a komponensvezérlőben.
- használjon szingulett csomópontokat, ha nestings (master detail) szükséges
a szingulett csomópontok jó teljesítményt nyújtanak, mert a csomópontnak csak egy példányát tartja a memóriában, ahelyett, hogy minden (inaktív) szülőobjektumhoz több példány lenne. Azonban jobb, ha tudja, mit csinál, mert ha jön a helyzet, amikor szükség van több aktív szülő elemek (sor ismétlő, beágyazott táblák, fák, multiselection táblák…) a singleton csomópont kiírja az alkalmazást.
ha nem ismeri jól a singleton csomópontok elvét, vagy ha a teljesítmény nem jelent problémát, ne használjon singleton csomópontokat.
- ne használjon dinamikus attribútumokat (IF_WD_CONTEXT_NODE_INFO – > ADD_ATTRIBUTE)
ha használhat statikusan definiált kontextusattribútumokat, akkor használjon statikus attribútumokat. Vannak azonban olyan helyzetek, amikor dinamikusan létre kell hoznia a kontextust. Ezekben az esetekben nincs más választása, mint dinamikus attribútumok hozzáadása. Egyetértek azonban azzal, hogy amennyire csak lehetséges, kerülje a dinamikus kontextus programozást (és a dinamikus nézet programozást).
- a bind_table
kontextusszerkezetű adatok használata nem nehéz követelmény, belsőleg a kötési műveletek áthelyezésnek megfelelőt használnak, és az eredeti táblát árnyékváltozóban tartják. Bár a lépés-megfelelő állítólag rossz a teljesítmény szempontjából. (Állítólag azért mondom, mert teszteket végeztem magamon, és nem találtam szignifikáns különbséget)
- csak akkor frissítse a kontextust, ha az adatokat ténylegesen frissíteni kell
attól függ, hogy mit jelent a frissítés?
- ne hozzon létre hosszú kontextus-leképezési láncokat.
?
- használja a Kontextusváltozási napló funkciókat a felhasználói bevitel észleléséhez. Ennek különleges teljesítmény-előnyei vannak, miközben az alkalmazás felhasználója csak kis mennyiségű adatot módosít egy nézetben, miközben nagy mennyiségű vegyes adatot jelenít meg.
igaz. A kontextusváltási napló nagyon erős lehet, ha dinamikus módon használják.
de ez is nagyon fejlett. Van egy kódrészletem, amely végigvezeti az összes változást egy kontextusban, hozzárendeli az adatokat a megfelelő változóhoz az assistance osztályban (mező a struktúrában vagy mező egy sorban egy belső táblában), és dinamikusan hív egy kezelő metódust (ha van ilyen). Ezt a részletet sok magasan képzett fejlesztővel osztottam meg. A mai napig csak 2 értette meg, hogy mit tett, és képesek voltak alkalmazni a saját összetevőikre.
az Ön által említett szabályok elég érdekesek, de mint Steve említette, érdemes lehet részletezni a célt és a mögöttes ötletet.
egészségünkre!
Leave a Reply