java script eval_java script Request获取URL地址栏属性的方法 (Get方式传参)+eval()使用...

URL: 经过encodeURI编码:

http://localhost:63342/vote/chooseVote.html?vote=%7B,info:%22s%22multi:true,choices:%5B%7Bname:%22choice0,value:%22d%22,num:0,percent:0%7D,%7Bname:%22choice1,value:%22a%22,num:0,percent:0%7D,%7Bname:%22choice2,value:%22s%22,num:0,percent:0%7D%5D%7D

Request = {

QueryString : function(item){

var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i"));

return svalue ? svalue[1] : svalue;

}

};

var vote = eval('('+decodeURI(Request.QueryString("vote"))+')');

$("span1").html(vote.info);

$("span2").html(vote.multi);

下面这个方法完成了对地址栏地址的取得

Request = {

QueryString : function(item){

var svalue = location.search.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)","i"));

return svalue ? svalue[1] : svalue;

}

};重要:

var vote = eval('('+decodeURI(Request.QueryString("vote"))+')');eval()方法:

eval()函数可以把一个字符串当作一个JavaScript表达式一样去执行它。  我们常常在Javascript中用到Eval这个函数,  有些人觉得这个函数很奇怪,可以把一些字符串变的功能很强大  在我们需要将普通的字符串转变成具体的对象的时候,就会用到这个函数  eval 函数对作为数字表达式的一个字符串进行求值,其语法为: eval(expr) 此处 expr 是一个被求值的字符串参数。 如果该字符串是一个表达式,eval 求该表达式的值; 如果该参数代表一个或多个 JavaScript 语句,那么 eval 执行这些语句。 eval 函数可以用来把一个日期从一种格式(总是字符串)转换为数值表达式或数字。  这里用()把decodeURI出来的json字符串包裹起来,再执行eval(),就可以得到一个Object类型!

Java使用Redis集群时,当执行Lua脚本时,如果脚本未被缓存或者不存在,Redis会返回 "NOSCRIPT No matching script. Please use EVAL." 的错误信息。这个错误信息的意思是Redis找不到匹配的脚本,需要使用EVAL命令来执行脚本。 解决这个问题的方法使用RedisTemplate的execute方法来执行Lua脚本。execute方法可以将Lua脚本和参数作为参数传递给Redis服务器执行。如果脚本已经被缓存,execute方法会直接使用缓存中的脚本;否则,execute方法会先将脚本加载到Redis服务器中,并执行脚本。 下面是一个使用execute方法执行Lua脚本的示例: ```java String script = "return redis.call('get', KEYS[1])"; RedisTemplate<String, String> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(new RedisClusterConnectionFactory(clusterConfiguration)); List<String> keys = new ArrayList<>(); keys.add("mykey"); String result = redisTemplate.execute(new RedisCallback<String>() { @Override public String doInRedis(RedisConnection redisConnection) throws DataAccessException { Object nativeConnection = redisConnection.getNativeConnection(); if (nativeConnection instanceof JedisCluster) { return (String) ((JedisCluster) nativeConnection).eval(script, keys, Collections.emptyList()); } return null; } }); ``` 在上面的示例中,我们使用了RedisTemplate的execute方法来执行一个简单的Lua脚本,该脚本从Redis中获取了一个键名为"mykey"的键的值。 需要注意的是,在传递参数时,需要使用execute方法的参数列表来传递键名和参数。 总之,NOSCRIPT No matching script. Please use EVAL. 错误通常是由于Lua脚本未被缓存或者不存在导致的,可以使用RedisTemplate的execute方法来执行脚本,避免这个错误的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值