精华内容
下载资源
问答
  • hash url hash用法

    2015-01-15 10:47:11
    hash = window.location.hash;

    hash = window.location.hash;



    展开全文
  • vue-router默认hash模式——使用URLhash来模拟一个完整的URL,于是当URL改变时,页面不会重新加载。这篇文章主要介绍了Vue Router去掉url中默认的锚点#,需要的朋友可以参考下
  • js获取url地址中的每一个参数,方便操作urlhash 值得收藏 <html> <body> <script> //location.search; //可获取浏览器当前访问的url中&...

    js获取url地址中的每一个参数,方便操作url的hash

    <html>
        <body>
            <script>
                //location.search; //可获取浏览器当前访问的url中"?"符后的字串
                function parseURL(url) { 		 
                    var a =  document.createElement('a'); 		 
                    a.href = url; 		 
                    return { 			 
                        source: url, 			 
                        protocol: a.protocol.replace(':',''), 			 
                        host: a.hostname, 			 
                        port: a.port, 			 
                        query: a.search, 			 
                        params: (function(){ 	
                            var ret = {}, 		
                            seg = a.search.replace(/^\?/,'').split('&'), //将该字符串首位的?替换成空然后根据&来分隔返回一个数组	         
                            len = seg.length, i = 0, s; 			     
                            for (;i<len;i++) { 			         
                                if (!seg[i]) { 
                                    continue; 
                                } 			         
                                s = seg[i].split('='); 			         
                                ret[s[0]] = s[1]; 			     
                            } 			     
                            return ret; 			 
                        })(), 			 
                        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1], 			 
                        hash: a.hash.replace('#',''), 			 
                        path: a.pathname.replace(/^([^\/])/,'/$1'),//将该字符串首位不是/的用这个组([^\/])替换,$1代表出现在正则表达式中的第一个()、$2代表出现在正则表达式中的第二个()...			 
                        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1], 			 
                        segments: a.pathname.replace(/^\//,'').split('/') 		}; 	
                    }   		
                    var URL = parseURL('http://abc.com:8080/dir/index.html?pid=255&m=hello#top&ab=1'); 	
                    // var URL = parseURL('http://localhost:8080/test/mytest/toLogina.ction?m=123&pid=abc'); 	
                    console.log('URL.query', URL.query)
                    console.log('URL.path', URL.path); 
                    console.log('URL.hash', URL.hash); 	
                    console.log('URL.params.pid', URL.params.pid); 
            </script>
        </body>
    </html>
    

    参考:
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/replace

    正则表达式的方式获取在url上参数

    function getQueryString(name) {
        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        let r = window.location.search.substr(1).match(reg);
        if (r != null) {
            return unescape(r[2]);
        };
        return null;
     }
    

    unescape函数很好理解,是对URL进行解码。那么为什么参数值是取r[2]呢?这就涉及到JS中match函数的用法了,查了W3school的文档,有这样一句话:如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。这就很好理解了,我们的match匹配返回的r中第0个元素是匹配的文本,后面的元素是正则子表达式匹配的文本。

    调用

    假设url='https://www.xxx.com?from=1&ch=1' 我们要获取from的值

    var from = getQueryString('from');
    
    展开全文
  • nginx负载均衡策略:ip_hashurl_hash

    万次阅读 多人点赞 2018-08-18 03:17:41
    2、url_hash(通过请求url进行hash,再通过hash值选择后端server): 一般来讲,要用到urlhash,是要配合缓存命中来使用。举一个我遇到的实例:有一个服务器集群A,需要对外提供文件下载,由于文件上传量巨大,...

    转发:https://blog.csdn.net/dengjiexian123/article/details/53105918

    前言:

    目前,许多的web应用,或者web接口,都会在服务器的入口处,使用一个服务器容器来监听端口,然后进行请求转发,例如nginx Apache等。

    服务器容器对应整个web服务有着至关重要的作用,包括:可以很好的管理服务进程,进行代理,对请求的预处理,以及负载均衡。

    今天要讨论的重点为在服务器集群中,合理使用nginx的hash策略做更有意义的负载均衡。

    概要:

    当我们的服务是由一台服务器支撑时,就丝毫不存在负载均衡的概念。只有当服务由多台服务器(也就是服务器集群)支撑时,才会使用到负载均衡。

    负载均衡顾名思义,是一种策略,用于防止一台服务器过载,而其他服务器闲置情况发生的策略。通过该策略可以使得提供相同服务的服务器负载基本相同。说得直白一点,就是当客户端发起一个请求之后,负载均衡会通过预先设定好的策略将该请求转发给上游的一台服务器进行处理。

    如图所示:

    负载均衡是一个很成熟的技术,其中对后端服务器进行轮询(默认);通过客户端请求IP进行hash;对后端服务器指定权重等,是较为常见的负载均衡策略。这里不再赘述。

    对服务盲目的采用负载均衡策略,是不太合理的。负载均衡默认情况下是轮询策略,这在一些场景下并不高效。

    更有意义的负载均衡:

    今天讲解的重点是,两种常见的负载均衡hash策略,以及对应的使用场景。

    1、ip_hash(通过客户端请求ip进行hash,再通过hash值选择后端server):

    当你服务端的一个特定url路径会被同一个用户连续访问时,如果负载均衡策略还是轮询的话,那该用户的多次访问会被打到各台服务器上,这显然并不高效(会建立多次http链接等问题)。甚至考虑一种极端情况,用户需要分片上传文件到服务器下,然后再由服务器将分片合并,这时如果用户的请求到达了不同的服务器,那么分片将存储于不同的服务器目录中,导致无法将分片合并。所以,此类场景可以考虑采用nginx提供的ip_hash策略。既能满足每个用户请求到同一台服务器,又能满足不同用户之间负载均衡。

    配置代码如下:

    upstream backend{
        ip_hash;
        server 192.168.128.1:8080 ;
        server 192.168.128.2:8080 ;
        server 192.168.128.3:8080 down;
        server 192.168.128.4:8080 down;
    
    }
    server {
        listen 8081;
        server_name test.csdn.net;
        root /home/system/test.csdn.net/test;
        location ^~ /Upload/upload {
        proxy_pass http://backend;
    
        }
    
    }

    上述是一个极简的监听8081端口的的nginx服务,其中当请求url 为/Upload/upload时,会走ip_hash策略; upstream是nginx的负载均衡模块,此处,配置了策略为ip_hash,参与负载均衡的机器有四台,其中后两台末尾添加了down关键字,表示下线的意思。

    2、url_hash(通过请求url进行hash,再通过hash值选择后端server):

    一般来讲,要用到urlhash,是要配合缓存命中来使用。举一个我遇到的实例:有一个服务器集群A,需要对外提供文件下载,由于文件上传量巨大,没法存储到服务器磁盘中,所以用到了第三方云存储来做文件存储。服务器集群A收到客户端请求之后,需要从云存储中下载文件然后返回,为了省去不必要的网络带宽和下载耗时,在服务器集群A上做了一层临时缓存(缓存一个月)。由于是服务器集群,所以同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。在此类场景下,为了使得缓存命中率提高,很适合使用url_hash策略,同一个url(也就是同一个资源请求)会到达同一台机器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取,既减少了带宽,也减少的下载时间。

    配置代码如下:

    upstream somestream {
        hash $request_uri;
        server 192.168.244.1:8080;
        server 192.168.244.2:8080;
        server 192.168.244.3:8080;
        server 192.168.244.4:8080;
    
    }
    server {
        listen 8081 default;
        server_name test.csdn.net;
        charset utf-8;
        location /get {
        proxy_pass http://somestream;
    
        }  
    }

    上述同样也是一个极简的监听8081端口的nginx服务,当请求url为/get时,会走url_hash;同样配置了upstream模块,hash $request_uri表明了是按照url规则进行hash策略。

    总结:

    以上就是本文要介绍的全部内容,本文侧重讲解了ip_hash和url_hash的使用场景和基本配置,另外,在进行nginx server 配置时,可以灵活一些,不同的location采用不同的策略,可以使得服务策略更加的合理。希望此文能为各位带来些许帮助。

    展开全文
  • React自定义钩子以从URL获取哈希值。 目录 安装 npm: npm install react-hash 纱: yarn add react-hash 用法 import React from 'react' ; import { useHash } from 'react-hash' ; const App = ( ) => { ...
  • URL中的hash(#号)详解

    千次阅读 2019-11-19 10:40:23
    1、#号的含义 #代表网页中的一个位置。其右面的字符,就是该位置上的标识符。...浏览器读取这个URL后,会自动的将print所在的位置滚动到可视区域内。 为网页位置指定标识符,有两个方法: 使用锚点,如&...

    1、#号的含义

    #代表网页中的一个位置。其右面的字符,就是该位置上的标识符。

    http://www.example.com/index.html#print

    这个URL代表的是这个www.example.com域名的这个index.html页面下的print位置。浏览器读取这个URL后,会自动的将print所在的位置滚动到可视区域内。

    为网页位置指定标识符,有两个方法:

    1. 使用锚点,如<a name="print"></a>,这种只能使用a标签
    2. 使用id属性,如<div id="print" >,这种适用各种标签

    2、HTTP请求不包活#

    #是用来指导浏览器动作的,对服务器端完全无用。所以,HTTP请求中不包括#。如访问下面的网址:

    http://www.example.com/index.html#print

    浏览器实际发出的请求是这样的:

      GET /index.html HTTP/1.1
    
      Host: www.example.com

    3、#后面的字符

    在第一个#后面出现的任何字符,都会被浏览器解读为位置标识符。这意味着,这些字符都不会被发送到服务器端。比如:

    http://www.example.com/?color=#fff

    浏览器实际发出的请求是:

      GET /?color= HTTP/1.1
    
      Host: www.example.com

    可以看到,“#fff”被省略了。只有将#转码为%23,浏览器才会将其作为实义字符处理。也就是说上面的网址应该写成:

    http://example.com/?color=%23fff

    4、改变#不触发网页重新加载

    只改变URL的#后面的部分,浏览器只会滚动到相应的位置,不会重新加载网页

    5、改变#会改变浏览器的访问历史

    每一次改变#后的部分,都会在浏览器的访问历史中增加一个记录,使用"后退"按钮,就可以回到上一个位置。

    这对于ajax应用程序特别有用,可以用不同的#值,表示不同的访问状态,然后向用户给出可以访问某个状态的链接。

    值得注意的是,上述规则对IE 6和IE 7不成立,它们不会因为#的改变而增加历史记录。

    6、window.location.hash读取#值

    window.location.hash这个属性可读可写。读取时,可以用来判断网页状态是否改变;写入时,则会在不重载网页的前提下,创造一条访问历史记录。

    7、onhashchange事件

    这是一个HTML 5新增的事件,当#值发生变化时,就会触发这个事件。IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+支持该事件。

    使用的三种方法:

      window.onhashchange = func;
    
      <body onhashchange="func();">
    
      window.addEventListener("hashchange", func, false);

    8、Google抓取#的机制

    默认情况下,Google的网络蜘蛛忽视URL的#部分。

    但是,Google还规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。

    展开全文
  • var urlHash = require ( 'url-hash' ) ; var url = 'http://www.example.com/page?id=4' ; // add hash to url var newUrl = urlHash . create ( url ) ; 验证网址 // require library var urlHash = require ( '...
  • URL中的hash(#)

    2019-03-07 12:11:41
    前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现. 那么#的具体用法...
  • encodeURIComponent 编码 ...// 获取url中的参数 hash模式下 export function formatUrlParams() { let url = window.location.hash let obj = {} if (url.indexOf('?') !== -1) { let start.
  • 普通地址 http://www.baidu.com/home?id=1&uid=2 使用以下JS函数获取url参数: function getQuery(val){ var query = window.location.search.substring(1); var vars = query.split("&"); for ...
  • nginx中,ip_hashurl_hash的区别

    千次阅读 2015-07-09 11:04:31
    最近看nginx的负载均衡,发现为了解决nginx的session问题,有两种方法,就是ip_hashurl_hash,ip_hash是根据ip来维持session的,而url_hash是根据url地址的,url_hash的优点是能够提高后端缓存服务器的效率,比如...
  • UrlHash/锚点

    2015-11-02 22:24:32
    使用《UrlHash/锚点》解决移动设备中的单页面应用的物理[返回键]带来的困扰 示例代码
  • 本文实例讲述了Python实现短网址ShortUrlHash运算方法。分享给大家供大家参考。具体如下: shorturl实现常见的做法都是将原始Url存储到数据库,由数据库返回一个对应ID。 以下要实现的是不用数据库支持就对原始URL...
  • 关于url中的#-----hash

    千次阅读 2017-10-16 14:35:53
    浏览器读取这个URL后,会自动将print位置滚动至可视区域。为网页位置指定标识符,有两个方法。一是使用锚点,比如,二是使用id属性,比如。2,http请求中不含#以我们平时的经验来看,的确http请求中是从来没有#出
  • url里的参数是hash形式的写法:

    千次阅读 2014-11-18 10:45:52
    url的参数是hash形式,比如state={user_id: 2, sign='hello'},如果写到url里应该写成: http://root/path?state[user_id]=2&amp;state[sign]=%2Fhello(注:引号需要编码) 下面找到这个答案的过程: 1、查url...
  • Hash算法系列-具体算法(url hash

    千次阅读 2011-09-17 23:24:29
    什么是urlhash架构 url hash架构对url进行一次hash算法,然后通过hash结果找到对应的服务器。因为针对单一个urlhash结果是一样的,所以理论上这个url会被永久分配到固定的一台服务器上。另外因为经过了hash算法,...
  • URL组成以及hash属性

    千次阅读 2019-11-01 10:33:15
    URL组成URL组成URL--协议部分URL--域名部分URL--端口部分URL--虚拟目录部分URL--文件名部分URL--参数部分URL--锚部分 URL组成 URL: 统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上...
  • 采用CuckooFilter、BloomFilter和HashFilter实现对url的过滤,主要用于考察不同hash算法的复杂度和性能,并分析不同场景下算法的优劣。 1.目前已集成HashFilter、CuckooFilter和BloomFilter。 2.CuckooFilter算法...
  • js获取url中指定参数的值(含带hash)

    千次阅读 2016-04-26 12:32:00
    function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&amp;]+([^=&amp;]+)=([^&amp;]*)/gi, function (m, key, value) { vars...
  • url_hash 是nginx的第三方模块,nginx本身不支持,需要打patch . Url_hash 你nginx在做负载均衡的时候。把转发的URLhash的形式保存。这样可以保证同一个URL始终 分给同一个real server,来提高访问速度。
  • jQuery.hash 插件 JavaScript/jQuery 解析URL

    千次阅读 2017-03-23 00:56:01
    hash就是 URL中 # 后面的部分。 通常我们使用 #id 做为 向id跳转的锚点,页面会被定位到id所在元素的位置,也会在页面打开的时候直接定位到id所在元素的位置 hash有几个特点: hash参数改变后浏览器不会刷新页面 后台...
  • 在vue的路由配置中有mode选项 最直观的区别就是在urlhash 带了一个很丑的 # 而history是没有#的 mode:”hash”;  mode:”history”;  hash模式和history模式的不同 对于vue这类渐进式前端开发框架,为了...
  • location是javascript里边管理地址栏的内置对象, ...本文转自米扑博客:URL 地址栏锚点 window.location.hash 使用方法 js 重定向网址的两种方法: window.location.href = "https://proxy.mimvp....
  • URL中 # (hash)的含义

    2019-02-27 20:24:00
    url中#(hash)的含义 hash 属性是一个可读可写的字符串,该字符串是 URL 的锚部分(从 # 号开始的部分) 1.“#”代表网页中的一个位置。其右面的字符,就是该位置的标识符 比如: ...
  • nginx 负载均衡(url-hash

    千次阅读 2020-04-29 17:19:23
    nginx负载均衡(nginx-upstream-hash) ...引入三方模块,实现根据urlhash调用后端的应用程序 *************************** 安装nginx-upstream-hash ...
  • uniapp打包hash和history两种模式的区别

    千次阅读 2021-07-02 15:29:38
    在uniapp打包成H5时,会有一个路由模式供你选择,有...它的特点在于:hash虽然出现在URL中,但不会被包括在HTTP请求中,对后端完全没有影响,因此改变hash不会重新加载页面。 2:history - 正常的网址 比如这种:http:/
  • React挂钩可让您的状态与URL参数保持同步。 安装 npm install --save use-hash-param 用法 import React from 'react' ; import useHashParam from 'use-hash-param' ; function ControlledInput ( ) { const [ ...
  • 前面给大家讲了哈希表(散列)这种数据结构,那么使用哈希表来解决实际问题,那就是Hash算法了,我们一起来看看。 一、Hash算法的概念 Hash算法(Hash Algorithm),简称散列算法,也成哈希算法(英译),是将一个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 182,226
精华内容 72,890
关键字:

hashurl