View layer state and session variables - ajax necessary?

I have a new interaction on a couple pages where I let the user
collapse/expand a side panel. I’d like to save state, so that when
the page is loaded subsequently, I can show each panel in its previous
state.\

After reading around, it seems that since javascript cant set server-
side session variables, the 2 approaches mentioned are to set a cookie
or to go with ajax.

Not sure how I feel yet about the cookie approach, but a round trip
back to the server for a client-side interaction doesnt seem like the
best approach.

Do others feel the same way or am I missing something here?

Are there other approaches suggested?