第一次点击元素时,ajax只调用一次

时间:2017-08-24 05:37:56

标签: javascript jquery ajax

我正在设计一个像WhatsApp网站一样的聊天应用程序。在那,现在我有聊天的虚拟数据。所以假设,如果我点击任何聊天,则显示相应的聊天记录,但这些聊天记录是虚拟数据。同样的方式我也为其他聊天做了但现在我想要的是如果我点击任何一个聊天然后ajax调用应该发生并且聊天日志被动态地呈现和显示但是这个ajax调用应该只发生一个每个聊天意味着如果我第一次点击某个聊天时会发生ajax调用,但如果第二次点击则不会发生ajax调用。 任何建议..?

1 个答案:

答案 0 :(得分:1)

问题我明白,一旦你点击聊天并获得了数据,下次不应该进行ajax调用,这将是一个额外的电话。

解决方案:您的问题的解决方案将是,第一次从服务器获得响应时,将其保存在localStorage中,A localStorage是一个强大的功能浏览器在浏览器会话中存储数据。

<强> Implemenatation:

示例api调用,

$.post(
    "chat-api-url",
    { chat: "chatId" },
    function(data) {
        localStorage.setItem('chatId', 'data')
    }
);

所以,现在点击jquery检查条件后,

if(localStorage.getItem('chatId') == undefined)
{
    $.post(
    "chat-api-url",
    { chat: "chatId" },
        function(data) {
            localStorage.setItem('chatId', data)
            this.chatData = data;
        }
    );
} else{
    this.chatData = localStorage.getItem('chatId');
}

PS:

localStorage.setItem存入localstorage

localStorage.getItem从中检索。 localStorage的

Here is a documeantation regarding different storages