当前位置: 首页 > 面试题库 >

回击按钮时记住ajax添加的数据

丁毅庵
2023-03-14
问题内容

我有一个搜索页面,其中每个搜索结果都通过AJAX添加到页面中。这样,我可以让用户搜索 Led Zeppelin ,然后再次搜索 Metallica,
但将其添加到与上一次搜索相同的结果列表中。

我的问题是,当用户单击指向记录的链接,然后单击“后退”按钮,回到搜索结果时。
FireFox(7) 保持页面离开时的外观,显示完整结果。另一方面,
IE(7,8)Chrome(15) 将显示该页面,就像在不使用AJAX添加任何搜索结果之前一样。

下面是我使用的代码。我尝试添加,location.hash = "test";但似乎没有用。

// Add search result
$("#searchForm").submit(function (event) {
    //location.hash = "test";
    event.preventDefault();

    $.post($(this).attr('action'), $(this).serialize(),
    function (data) {
        $("tbody").append(data);
    });
});

我不需要后退按钮来跟踪搜索页面上的更改,就像逐步添加每个不同的搜索结果一样。我只希望浏览器在单击“后退”按钮时记住上一个搜索结果。

解决了
更改为document.location.hash = "latest search"没有任何改变。我不得不使用localStorageAmir指出的。

这涉及到其余的jQuery代码:

// Replace the search result table on load.
if (('localStorage' in window) && window['localStorage'] !== null) {
    if ('myTable' in localStorage && window.location.hash) {
        $("#myTable").html(localStorage.getItem('myTable'));
    }
}

// Save the search result table when leaving the page.
$(window).unload(function () {
    if (('localStorage' in window) && window['localStorage'] !== null) {
        var form = $("#myTable").html();
        localStorage.setItem('myTable', form);
    }
});

问题答案:

您有几种选择。

  1. 使用localstorage记住上一个查询
  2. 使用Cookie(但不要)
  3. 尝试使用哈希值document.location.hash = "last search"来更新URL。您将再次查看哈希,如果已将其设置,则执行另一个ajax来填充数据。如果您已完成本地存储,则可以仅缓存上一个ajax请求。

我会使用localstorage和散列解决方案,因为这是某些网站所做的。您还可以复制和粘贴URL,它将仅加载相同的查询。这很好,我会说很方便。

我很想知道为什么它不起作用。更新您的答案,以便我们提供帮助。



 类似资料:
  • 谁能帮我知道哪里出了问题?还有其他方法吗?提前感谢!

  • 问题内容: 我有一些Django可以很好呈现的HTML。我想单击HTML上的按钮,并在视图中触发事件。 看起来按钮并未引起触发。我不确定自己在做什么错。 这是我的代码: 这是我的: 问题答案: 为什么没有直接使用该事件? 试试这个: 如果按钮是动态创建的,那么您可能想使用该函数将事件处理程序附加到元素: 尝试使用以下URL来包含JQuery库:

  • 本文向大家介绍Repeater中添加按钮实现点击按钮获取某一行数据的方法,包括了Repeater中添加按钮实现点击按钮获取某一行数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文以一个asp.net程序为例讲述了Repeater中添加按钮实现点击按钮获取某一行数据的方法,分享给大家供大家参考借鉴之用。具体步骤如下: 1.添加编辑按钮和删除按钮 具体代码如下: 2.选中Repeater控件,添

  • 本文向大家介绍Android如何给按钮添加点击音效,包括了Android如何给按钮添加点击音效的使用技巧和注意事项,需要的朋友参考一下 有很多制作精良的APP都自带点击音效,那么如何简单的来实现这一效果,这里需要使用到的一个概念叫做SoundPool,这个类主要用于播放一些比较小的音频文件,因为比较方便,通常用在游戏里比较多。 代码 闲话不多说,我们现在需要做一个功能,就是点击某一按钮的时候同时播

  • 在连续单击5次按钮后,尝试将ngClass添加到div。 这是应用程序上的按钮。组成部分html文件: 这是应用程序。组成部分ts文件: 这是一个应用程序。组成部分css 目前,在单击第5个按钮后,logItem背景保持蓝色。我可以检查控制台,看到类。白文本已经添加,但文本仍然是黑色的。 下面是它的外观: 当我检查元素时,您可以看到已经添加了类: 我对Angular是个新手,我正沿着我的路线走,被

  • 2.返回按钮的点击监听 在聊窗顶部有一个返回按钮,在返回时可以添加其他事件,使用的接口如下: Ntalker.getInstance().setOnBackBtnListener(new OnBackBtnClickListener() { @Override public void OnBackBtnClick() { Toast.make