【问题标题】:Running a script on another html page without refreshing [closed]在另一个html页面上运行脚本而不刷新[关闭]
【发布时间】:2014-08-11 09:14:44
【问题描述】:

我正在尝试实现一个类似于 Facebook 的通知系统,因为它在标题中会有一个小图标,当按下该图标时,会下拉一个 div,其中包含在表格中排序的用户通知。然后,我希望在悬停时将单个通知标记为“已读”,并为该通知插入数据库中的“time_created”时间戳。表格上的每个通知都有其单独的“notice_id”。我在我的页面上使用 Perl,我们称之为 main.html。

我想创建另一个“readon.html”页面,其唯一目的是将通知标记为已读,因为我有单独的 notify_ids。我想实现这一点,只要我将鼠标悬停在 main.html 标题的下拉框中的通知上,它将执行这些任务而无需重新加载页面。

这可能吗?或者类似的东西?如果是这样,我应该研究什么,你能把我推向正确的方向吗?提前致谢。

【问题讨论】:

    标签: jquery html ajax facebook perl


    【解决方案1】:

    您对 jQuery 及其 AJAX 实现的满意程度如何?

    听起来你需要jQuery.post() http://api.jquery.com/jquery.post/

    <div class="notification unread" data-noticeid="123">Lorem ipsum</div>

    $(document).on('mouseenter', '.notification.unread', function(){
        $(this).removeClass('unread');
        var notice_id = $(this).data('noticeid');
        $.post('readon.html', {notice_id: notice_id});
    });
    

    您在 readon.html 中的 Perl 脚本随后将获取 notice_id 并使用当前服务器时间在后端将其标记为“已读”。

    【讨论】:

    • 感谢您的回复,这正是我想要的。我对 Perl、kQuery 和 AJAX tbh 还是很陌生。在我的“readon.html”上,脚本是否需要自动运行,我是否需要将其重定向回当前页面或类似的东西? readon.html 页面上的流程是如何工作的。
    • 在 readon.html 上,您的 Perl 脚本将需要读取包含整数值的 POST 变量 notice_id(类似于 $CGI->param('notice_id'))的值(确保清理该值以防止 SQL 注入)。 readon.html 不需要将任何数据(没有 HTML/CSS 或任何东西)输出/返回/重定向回 main.html。 readon.html 只需要在标题中返回一个200 OK 状态(如果您不知道那是什么,请不要担心)。
    • 是否可以在不使用 CGI 的情况下检索 notice_id?就像可能从 URL 中提取的一样?抱歉,我仍然对一切如何运作以及是否会有网址感到有些困惑。我想它会像“readon-?
    • 您需要使用 Perl/CGI 使用 GET 或 POST 方法获取 notice_id,然后将其插入数据库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多