| 37494 |
37 d 11 h |
amit |
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ |
Fix: namespace document-level handlers in re-injected vm fragments
Same defect class as r37493. These fragments are injected with .html(),
which re-executes their inline <script>, so every load stacked another
$(document) delegated handler. One click then fired N identical requests;
PostInterceptor claimed the first and rejected the rest as duplicates.
Confirmed in prod today: beat-plan-day-view #avSubmit produced bursts of
3-4 rejections on POST /beatPlan/assignVisit/submit. The other four are the
same shape - chart-filter-lms, franchisee-account-creation and beat-plan-bulk
re-inject themselves directly, placement-plan-details does so indirectly by
clicking .search-partner-stock after createPo.
Adopt the create-purchase-return.vm convention: one $(document).off('.ns')
before the first binding, every event namespaced. Only the newest binding
survives, which also fixes handlers holding a stale Velocity closure from a
previously rendered record.
Behaviour-preserving: the only changes are the namespace suffix on 22 event
strings plus the five off() calls. Selectors, handlers and ordering untouched.
Read-only self-injecting fragments (activation-tabular, catalog,
partner-onboarding-*, etc) still stack handlers but only fire GETs, which are
never deduped - left for a separate pass. |
|