Not sure about Spine.js but you can do something like in Backbone by creating a model Menu
.
Each Menu has reference to parent menu (apart from the one which is on the top).
Whenever you fetch menu items, you store them in local storage.
Whenever user clicks on a menu item, you first check if it's stored in local storage. If yes, show them from local storage else fetch them from server.
Saying that you'll have to think of a strategy to find out when to update your local storage.