1

助けてください。DIV 'alertDIV' への AJAX 呼び出しを含む次の JSP ファイルがあり、3 秒ごとに更新する必要があります.3 秒ごとに jsp ファイル 'alertbar.jsp' をロードしたい.. ファイル alertbar.jspクエリを実行して結果を返すために使用されます。

現在、プロジェクトを実行すると、呼び出し側の JSP ファイル (「userhome.jsp」) が 3 秒ごとに DIV を更新しています。ただし、バックエンドで値を変更すると、新しい値が更新されません。ページを更新すると、変更された結果が表示されます。私は多くの提案を検討し、「$.ajaxSetup ({cache: false});」という行を追加しました。それでも変更はありません...単純なプロジェクトを作成し、これら2つのファイルを単独で使用しましたが、驚いたことに、適切な結果が表示されています.サンプルプロジェクトで動作していた同じコードセットを既存のプロジェクト...しかし機能していません..アプリケーションがキャッシュを保持するようになっている理由について、私は機知に富んでいます(それが理由である場合)

必要に応じてコードを送信できます..しかし、DIVを更新するためにこのサイトで提案されたものと同じです...

コードは次のようになります

ユーザーホーム。jsp

<script src="http://ajax.googleapis.com/ajax/
libs/jquery/1.3.0/jquery.min.js"></script>
<script>
var auto_refresh = setInterval(
function()
{
$.ajaxSetup ({
    cache: false
    });


$('#alertdiv').fadeOut('slow').load('alertbar.jsp').fadeIn("slow");
}, 3000);
</script>       

そしてその

アラートバー.jsp

<div >
    <%
        try 
        {
           %>  Alerts over  <% 
           Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
           Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1455;DatabaseName=card8","sa","adminadmin");
           Statement st=con.createStatement();
           ResultSet resultSet=st.executeQuery("select case(filetype) when 103 then 'file1' when 104 then 'file2' when 111 then 'file3' when 117 then 'file4' when 120 then 'file5' when 143 then 'file6' end , count(*)  from filecontrol where state = 101 group by filetype ");
           while(resultSet.next())
           {
            %>
            <%= resultSet.getString(1)  + ": (" + resultSet.getInt(2)+ ")   |   " %>    
            <%
           }
           %>  Alerts over  <% 
        } 
        catch( ClassNotFoundException e)
        {
            e.printStackTrace();
        } catch( SQLException e) 
        {
            e.printStackTrace();
        } catch(Exception e) 
        {
            e.printStackTrace();
        }
    %>      
</div>

前もって感謝します

4

1 に答える 1

0

setInterval 関数でこのようなものを使用するだけです

$.ajax({    
    cache: false,
    url : urlName,
    type : 'GET',
    async: false,
    data : {},              
    success : function(data) {
        $('#alertdiv').html(data);
    },
    error: function (e) {
        alert('Error: ' + e); 
    }
});

乾杯、 vrathore.blogspot

于 2013-01-16T10:31:17.723 に答える