在JavaScript中读取cookie的最短,准确和跨浏览器兼容的方法是什么?
通常,在构建独立脚本(我不能拥有任何外部依赖项)时,我发现自己添加了一个用于读取cookie的函数,并且通常会回退到QuirksMode.orgreadCookie()
方法(280字节,216缩小).
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
它完成了这项工作,但它的丑陋,每次都增加了相当多的膨胀.
jQuery.cookie使用这样的方法(修改,165字节,125缩小):
function read_cookie(key)
{
var result;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? (result[1]) : null;
}
Run Code Online (Sandbox Code Playgroud)
请注意,这不是"Code Golf"竞赛:我有理由减少readCookie功能的大小,并确保我的解决方案有效.
Google Analytics网站速度功能如何_gaq.push(['_trackPageLoadTime'])
运作?有没有关于它如何工作的文件?
许多分析和跟踪工具正在请求1x1 GIF图像(Web错误,对用户不可见)以进行跨域事件存储/处理.
为什么要提供这个GIF图像呢?简单地返回一些错误代码(如503 Service Temporary Unavailable或空文件)会不会更有效率?
更新:为了更清楚,我问为什么在请求标题中已经发送了所需的所有信息时提供GIF图像数据.GIF图像本身不会返回任何有用的信息.
假设我的Web应用程序在服务器端完全支持PUT和DELETE,我应该使用它们吗?
基本上我的问题是有多少浏览器支持这个:
<form method="PUT">
Run Code Online (Sandbox Code Playgroud)
要么
<form method="DELETE">
Run Code Online (Sandbox Code Playgroud)
除了兼容REST之外,使用这两种HTTP方法有什么好处吗?(假设替换这两种方法是常用的POST)
是否可以在javascript中创建一个新的Location对象?我有一个url作为字符串,我想利用javascript已经提供的访问它的不同部分.
这是我正在谈论的一个例子(我知道这不起作用):
var url = new window.location("http://www.example.com/some/path?name=value#anchor");
var protocol = url.protocol;
var hash = url.hash;
// etc etc
Run Code Online (Sandbox Code Playgroud)
这样的事情是可能的,还是我自己必须自己创建这个对象?
如何在N个可变长度的JavaScript数组中生成所有值的组合?
假设我有N个JavaScript数组,例如
var first = ['a', 'b', 'c', 'd'];
var second = ['e'];
var third = ['f', 'g', 'h', 'i', 'j'];
Run Code Online (Sandbox Code Playgroud)
(在这个例子中有三个数组,但它有N个数组用于解决问题.)
我想输出它们的所有值的组合,以产生
aef
aeg
aeh
aei
aej
bef
beg
....
dej
Run Code Online (Sandbox Code Playgroud)
编辑:这是我工作的版本,使用ffriend接受的答案作为基础.
var allArrays = [['a', 'b'], ['c', 'z'], ['d', 'e', 'f']];
function allPossibleCases(arr) {
if (arr.length === 0) {
return [];
}
else if (arr.length ===1){
return arr[0];
}
else {
var result = [];
var allCasesOfRest = allPossibleCases(arr.slice(1)); // recur with the rest of array
for (var …
Run Code Online (Sandbox Code Playgroud) 是否可以使用谷歌分析跟踪像页面这样的哈希链接?
例如,我希望index.php /#1,index.php /#2和index.php /#3都显示为单个页面点击,其中包含在页面上花费的个人时间.
如果没有简单的方法,我如何使用jquery将跟踪事件添加到onclick事件?我还能以这种方式获得"页面"信息的准确时间吗?
如果phpinfo()
向最终用户显示转储,恶意用户可以对该信息执行的最差情况是什么?什么领域最不安全?也就是说,如果您phpinfo()
公开展示,在关闭之后,您应该在哪里观看/关注恶意攻击?
是否有任何工具可以采用特定的正则表达式,并根据正则表达式匹配的特定数量的字符所需的操作数返回最坏的情况?
例如,给定a (f|a)oo.*[ ]baz
,引擎可能会通过多少步骤来匹配100个字符?
如果有一个工具可以获取大量文本样本并显示每次运行的平均操作,我也会感兴趣.
我意识到这将在很大程度上取决于所使用的引擎和实现 - 但我不知道这是多么常见.因此,如果它对于许多语言来说很常见(使我的问题太模糊),我会对Perl和Python特别感兴趣.
我只是想知道没有curl_getopt()函数,如何找出curl_setopt()
以前为特定选项设置的值?
javascript ×6
html ×3
php ×2
algorithm ×1
analysis ×1
cookies ×1
curl ×1
html5 ×1
http ×1
jquery ×1
optimization ×1
performance ×1
perl ×1
python ×1
regex ×1
rest ×1
security ×1
url-parsing ×1