SurveyJSON was storing a lot of redundant information (every setting on every single section/question/answer, which, in most cases, will simply take on the default values). This was bloating the surveyJSON property in the db, and equally as importantly, slowing down Survey because it had to do a lot of JSON parsing on the serialised surveyJSON object. We now factor out and store the current section/question/answer defaults along with the surveyJSON data itself, which means that we only needs to store properties that differ from the defaults. This results is a massive reduction in the size of the serialized surveyJSON stored in the database, as well as a speed-up in json parsing time. The compression/uncompression happens transparently to the rest of Survey. |
||
|---|---|---|
| .. | ||
| Account | ||
| AdSpace | ||
| Asset | ||
| AssetAspect | ||
| Auth | ||
| Cache | ||
| Content | ||
| Crud | ||
| FilePump | ||
| Form | ||
| Group | ||
| Help | ||
| i18n | ||
| Inbox | ||
| lib | ||
| Macro | ||
| Operation | ||
| Session | ||
| Shop | ||
| Spectre | ||
| Storage | ||
| supporting_collateral | ||
| Workflow | ||
| _test.skeleton | ||
| _test.skeleton.mech | ||
| Account.t | ||
| AdSpace.t | ||
| Auth.t | ||
| Config.t | ||
| Crud.t | ||
| DatabaseLink.t | ||
| DateTime.t | ||
| Form.t | ||
| Group.t | ||
| hardcodedExtras.t | ||
| HTML.t | ||
| Inbox.t | ||
| International.t | ||
| Keyword.t | ||
| Macro.t | ||
| mandatory_template_vars.t | ||
| Paginator.t | ||
| PassiveProfiling.t | ||
| Pluggable.t | ||
| POD.t | ||
| PodChecker.t | ||
| ProfileCategory.t | ||
| ProfileField.t | ||
| Search.t | ||
| Session.t | ||
| smtpd.pl | ||
| splitTag.t | ||
| SQL.t | ||
| Storage.t | ||
| syntaxCheck.t | ||
| templateChecker.t | ||
| Text.t | ||
| User.t | ||
| Utility.t | ||
| VersionTag.t | ||
| WebGUI_conf.t | ||
| Whitespace.t | ||
| Workflow.t | ||