View Issue Details

This bug affects 1 person(s).
 4
IDProjectCategoryView StatusLast Update
05777Bug reportsSurvey takingpublic2012-03-14 21:08
ReporterTMSWhite Assigned ToTMSWhite  
PrioritylowSeverityminor 
Status closedResolutionfixed 
Product Version1.92RC3 
Target Version1.92RC4Fixed in Version1.92RC4 
Summary05777: performance issue: lots of irrelevant javacript is called with each onchange event
Description

This can result in poor performance on Internet Explorer, or when many questions are on a page (e.g. all-in-one mode).

Please refactor to be comnparable to checkconditions and noop_checkconditions - e.g. only do relevance, tailoring, and validation checks for questions where the changed value is utilized in an EM equation for that question.

However, also make sure such changes don't mess up cascading relevance capabilities.

TagsNo tags attached.
Bug heat4
Complete LimeSurvey version number (& build)12401
I will donate to the project if issue is resolvedNo
Browser
Database type & versionMysql 5.3
Server OS (if known)Windows XP
Webserver software & version (if known)XAMPP
PHP Version5.3

Relationships

related to 05803 closedTMSWhite cascading equation calculations not working 

Users monitoring this issue

There are no users monitoring this issue.

Activities

TMSWhite

TMSWhite

2012-02-08 15:32

reporter   ~17296

First Attempt:
(1) Track all dynamic variables that contribute to each equation, and only call the question-specific relevance/tailoring/validation functions if it is dependent upon one of those dynamic variables.
(a) Result: Seems much faster, and works fine for all except cascading array_filter (haven't fully tested non-array-filter relevance cascading, but would also have trouble there).
(b) Reason - cascading is done via hidden relevance variables, rather than explicitly referencing more distantly antecedent variables.

Second Attempt?:
-If any change to sub-question-level relevance, also update any question depending upon that equation?
-Also if any change to full-question-level relevance also update any downstream dependent question?

TMSWhite

TMSWhite

2012-02-08 20:31

reporter   ~17299

Fixed in revision 12404

c_schmitz

c_schmitz

2012-02-14 14:10

administrator   ~17401

1.92RC4 released

Related Changesets

LimeSurvey: Yii aa5608e9

2012-02-08 11:44:51

TMSWhite

Details Diff
Fixed issue 05777: performance issue: lots of irrelevant javacript is called with each onchange event
Dev Refactored Javascript code generated by EM to have separate relevance and validation functions for each qid
Dev Each relevance function knows exactly which variables and/or other qids could affect its operation, so ensures cascading while minimizing calling functions when nothing significant has changed
Dev also fixed issue with multi_set() - was not calling checkconditions onchange
Dev also fixed issue with slider - was not calling checkconditions onchange with the parameters that EM needs
Dev also fixed issue with Tab behavior - if tabbed off of a text input box, then clicked a checkbox, nothing would happen until next change - fixed.

git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey_yii@12405 b72ed6b6-b9f8-46b5-92b4-906544132732
Affected Issues
05777
mod - application/helpers/SurveyRuntimeHelper.php Diff File
mod - application/helpers/expressions/em_core_helper.php Diff File
mod - application/helpers/expressions/em_manager_helper.php Diff File
mod - scripts/admin/expressions/em_javascript.js Diff File
mod - scripts/jquery/lime-slider.js Diff File
mod - scripts/survey_runtime.js Diff File

Issue History

Date Modified Username Field Change
2012-02-08 08:30 TMSWhite New Issue
2012-02-08 08:30 TMSWhite Status new => assigned
2012-02-08 08:30 TMSWhite Assigned To => TMSWhite
2012-02-08 15:32 TMSWhite Note Added: 17296
2012-02-08 20:24 TMSWhite Target Version => 1.92RC4
2012-02-08 20:31 TMSWhite Note Added: 17299
2012-02-08 20:31 TMSWhite Status assigned => resolved
2012-02-08 20:31 TMSWhite Fixed in Version => 1.92RC4
2012-02-08 20:31 TMSWhite Resolution open => fixed
2012-02-10 04:43 TMSWhite Relationship added related to 05803
2012-02-14 14:10 c_schmitz Note Added: 17401
2012-02-14 14:10 c_schmitz Status resolved => closed
2012-03-14 21:08 TMSWhite Changeset attached => Import 2012-03-09 13:30:34 Yii aa5608e9