Mam na mojej stronie edytor tekstu, gdzie można używać BB Code (tak jak tutaj na forum), powiedzmy jeśli chcę dodać jakiś odsyłacz, klikam na odpowiedni guzik i javascript wstawia mi do textarea [a="url"]"Opis linka"[/a].
Teraz pytanie - czy lepiej stworzyć funkcję, która będzie parsowała BB Code na html [a]Opis[/a] => <a href=url>Opis</a> i tak zapisywala w bazie gotowy html, a gdy bedziemy chcieli tekst edytować, to użyć funkcji, która będzie parsowała tekst z powrotem na BB Code. Czy może nic nie zmieniać i zapisywać BB Code w bazie, a potem funkcję parsujacą BBCode2HTML uruchamiać przy każdym odczycie tekstu z bazy przez użytkownika.
Plusy parsowania przed wstawieniem do bazy:
- gdy odczytuję tekst, to wykonuje się to szybciej, nie trzeba zamieniać BB Code na kod html, bo już go mamy w bazie
Minusy parsowania przed wstawieniem do bazy:
- gdy zechcę zmienić działanie BB Code, a już są gotowe teksty w bazie, to trochę ciężko o spójność
- jeśli np. zechcę użyć do bazy wyniku funkcji podświetlającej kod (geshi), to będzie potrzebne duuuużo miejsca
Plusy parsowania wraz z odczytywaniem tekstu:
- spójność ze zmianami
- mniej miejsca potrzebne w bazie
- jeśli chcę edytować tekst, to nie trzeba się bawić w parsowanie go z powrotem na BB Code
Minusy parsowania wraz z odczytywaniem tekstu:
- wolniej, trzeba parsować każdy tekst przed odczytaniem
Co jest lepsze?