草庐IT

javascript - Jquery/Javascript - 获取该 session 的请求 URL 列表,就像在浏览器控制台中一样

coder 2024-04-30 原文

我需要能够检索显示在浏览器控制台中的请求 URL 列表,即:GET http://mydomain.com/index.php?p=1&curr=GBP&cat=Food。 200。用户可以点击我的应用程序并应用不同的过滤器并滚动浏览页面,我需要某种方式来跟踪这一点,以便我始终知道已经为该用户 session 加载了哪些数据。

我曾考虑过使用 PHPs $_SERVER['REQUEST_URI'] 并将它们保存在一个 session 中,但后来我不知道如何从我的 JQuery 访问这个 session ,因为它的 JQuery 构造网址。

有人知道如何从控制台访问这些数据吗?这可能吗?如果没有,有人可以建议解决方法吗?

到目前为止,我遇到的 PHP/JQuery 困惑情况:

<?php
    session_start();                   
    //keep track of requests.
    if (!isset($_SESSION['requests'])) {
        $_SESSION['requests'] = array();
    } else {
        if (!in_array( $_SERVER['REQUEST_URI'], $_SESSION['requests'])) { 
            $_SESSION['requests'][] = $_SERVER['REQUEST_URI'];
        }
    }
    $requests = json_encode($_SESSION['requests']);

    print_r($_SESSION['requests']);
    print_r($requests);  //these both have values
?>

//further down the page is the javascript
$('.filter a').click(function(e) {
    var $this = $(this);
    var $optionSet = $this.parents('.option-set');
    var group = $optionSet.attr('data-filter-group');
    filters[ group ] = $this.attr('data-filter-value');
    //***more code for filtering etc******/

    var paginate_url = $('.paginate a').attr('href');

    //THIS IS PART I CANNOT GET WORKING
    var visited_urls= <?=$requests?>;
    //console.log($.parseJSON(visited_urls));

    console.log(visited_urls); //is always empty
    var pageno = '';  //somehow check to see if the URL that has been clicked exists int he requests array, if so get the page number and increment.

    var next_url = UpdateQueryString(paginate_url, pageno, group, encodeURIComponent(filter_qry));

最佳答案

我不完全确定您要做什么,但我认为您可以跳过 PHP,只使用 JavaScript 和 sessionStorage:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage#sessionStorage或本地存储:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage#localStorage (取决于您希望数据的持久性)

例如,如果我想监听对“a”标签的所有点击并跟踪这些 href 是否已被访问(以及访问了多少次)

$(document).ready(function() {
    // store an empty object in session storage when the page loads
    sessionStorage.visited = JSON.stringify({});
});

$('a').on('click', function() {
    var storage = JSON.parse(sessionStorage.visited),
        href = $(this).attr('href');

    // when we get a click check to see if this has been clicked before
    if (!storage[href]) {
        // if not save it and set the count to 1
        storage[href] = 1;
    } else {
        // otherwise increment the count
        storage[href]++;
    }

    sessionStorage.visited = JSON.stringify(storage);
});

如果您想保存来自 ajax 调用的 url,同样的原则适用,但监听 ajaxSuccess 事件并将来自请求的 url 存储在回调中:http://api.jquery.com/ajaxSuccess/

关于javascript - Jquery/Javascript - 获取该 session 的请求 URL 列表,就像在浏览器控制台中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21441952/

有关javascript - Jquery/Javascript - 获取该 session 的请求 URL 列表,就像在浏览器控制台中一样的更多相关文章

  1. ruby-on-rails - rails : save file from URL and save it to Amazon S3 - 2

    从给定URL下载文件并立即将其上传到AmazonS3的更直接的方法是什么(+将有关文件的一些信息保存到数据库中,例如名称、大小等)?现在,我既不使用Paperclip,也不使用Carrierwave。谢谢 最佳答案 简单明了:require'open-uri'require's3'amazon=S3::Service.new(access_key_id:'KEY',secret_access_key:'KEY')bucket=amazon.buckets.find('image_storage')url='http://www.ex

  2. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  3. ruby - RVM 使用列表[0] - 2

    是否有类似“RVMuse1”或“RVMuselist[0]”之类的内容而不是键入整个版本号。在任何时候,我们都会看到一个可能包含5个或更多ruby的列表,我们可以轻松地键入一个数字而不是X.X.X。这也有助于rvmgemset。 最佳答案 这在RVM2.0中是可能的=>https://docs.google.com/document/d/1xW9GeEpLOWPcddDg_hOPvK4oeLxJmU3Q5FiCNT7nTAc/edit?usp=sharing-知道链接的任何人都可以发表评论

  4. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  5. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

  6. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  7. ruby - 获取模块中定义的所有常量的值 - 2

    我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c

  8. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  9. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  10. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

随机推荐