Jakob Nielsen
Jakob Nielsen

Reputation: 5198

Change session variables without reloading page

So my webpage has a Link remove Advertisment which should remove the ads from my website and remember to not show any ads in the rest of the session.

My approach at was first was a private static Variable in the controller, which could be set via methods.

private static boolean Ads = true;

public static void closeAds() {
    Logger.debug("Ads removed");
    Ads = false;
}

I did some research and found out that the session() method provided by the play framework probably would be more suitable.

Anyway my problem is, I don't know how to call those controller methods within my html page, since every HTTP request has to have an response and I don't want to reload my page, I only want to set the variable or session variable.

I figured Ajax could be the answer? I couldn`t come up with anything yet

Upvotes: 0

Views: 1147

Answers (1)

Onur Aktaş
Onur Aktaş

Reputation: 410

Play keeps session information on client side within a signed cookie.

So you have 2 options (I would go with the 2nd):

1) Ajax call to update play's session data (because you will not want to modify this on client side with javascript since it is a signed cookie and break things)

2) Create another cookie for keeping the advertisements on/off flag and modify it by javascript on clientside, and then you can check the value of this cookie on server side to achieve ads on/off. This will prevent you from doing an extra ajax call.

Upvotes: 2

Related Questions