2017-03-17 10 views
0

商品を買い物カゴに追加するのは、ユーザーが「バスケットに追加」を初めてクリックするときだけですが、ページをリフレッシュするたびに商品を再度追加します。 ページがリフレッシュされるたびに実行されるJSP関数

は、ここで私はwindow.onloadメソッドを使用して試してみましたが、それは何らかの理由で動作しません。あなたが見ることができるようにバスケット

<% 
    String empty = request.getParameter("emptyBasket"); 
    if (empty!=null) { 
     basket.clearBasket(); 
    } 

    String item = request.getParameter("addItem"); %> 

<script> 
    window.onload = function(){ 
     if(localStorage.getItem("notFirstTime") == null) { 
      <% basket.addItem(item); %> 
      localStorage.setItem("notFirstTime", true); 
     } 
    } 
</script> 

<html> 
<body> .... 

に項目を追加する私のコードです。コードをもう一度見る必要がある場合はお知らせください。私は更新します。

ありがとうございます。

+0

「JSP」ページの仕組みをよりよく理解する必要があると思います。これらのページのすべての 'Java'コードは、ページが読み込まれて' HTML'、 'JavaScript'または' <%basket.addItem(item); %> 'は常に実行されます。 – Titus

答えて

1

JSPがサーバーで実行されています。 JavaScriptはブラウザ上で動作します。サーバー側のコードが最初にサーバー上で実行され、ページが生成されます。その後、ネットワークを介してJavaScriptを実行するブラウザに送信します。 basket.addItem(item)は、サーバー側のコードなので、ページ生成プロセスの一部として常に実行されます。

これらの値の格納には、Cookie(匿名ユーザーの場合)またはDB(認証ユーザーの場合)を考慮する必要があります。

+0

あなたの返信ありがとう、代わりに私がこれを提案する方法はありますか? –

+0

@JamesMcCutcheonこのタスクでは、特にユーザーが匿名の場合、Cookieが一般的に使用されます。この操作が認証されたユーザーによって行われた場合は、DBを使用するだけです。 – Joseph

関連する問題