This is an old revision of the document!


Private data showing on public cache content due to JS global variable issue

Problem: Private data showing on public cache content

Cause: Some global variables in JavaScript is initialized based on user session data but saved in a public cache

Solution: As of version 1.0.2, a place holder block for JavaScript variables has been introduced. This place holder is a private block, so every user will get his/her own correct value.

Check the code:

code/community/Litespeed/Litemage/Block/Inject/Jsvar.php

Extend: You can also write your own code to customize this block. Please be sure to keep a copy of your customized code in a local directory to avoid it being overridden during LiteMage updates.

You generally do not need to modify the block code and can instead just modify the template associated with that block.

app/design/frontend/base/default/template/litemage/inject/jsvar.phtml

For example: “isLoggedIn” is used by an SNS ajax cart for wishlists. In LiteMage's config.xml file located under magento_install_directory/app/code/community/Litespeed/Litemage/etc, this block, “litemage.jsvar”, is listed under “welcome” and will be purged by logged_in/out events.

If you have any other variables based on events not already represented in LiteMage's config.xml file, you can add them in as new blocks in the “esiblock” section. (Be sure to add a LiteMage ESI observer for these events as well)

  • Admin
  • Last modified: 2016/05/09 20:34
  • by Long Hu