Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery作为临时多边形填充_Javascript_Jquery_Json_Polyfills - Fatal编程技术网

Javascript jQuery作为临时多边形填充

Javascript jQuery作为临时多边形填充,javascript,jquery,json,polyfills,Javascript,Jquery,Json,Polyfills,我正在编写一个JavaScript,目前需要支持较旧的浏览器(如IE7),直到明年所有用户都升级到更现代的浏览器 我正在考虑将jQuery用作临时多边形填充,如下所示: var flag=0; window.JSON||(flag=1); document.querySelectorAll||(flag=1); if (flag===1) { // load jQuery here } else { // no need for jQuery } 这种方法有意义吗?有更好的办法

我正在编写一个JavaScript,目前需要支持较旧的浏览器(如IE7),直到明年所有用户都升级到更现代的浏览器

我正在考虑将jQuery用作临时多边形填充,如下所示:

var flag=0;
window.JSON||(flag=1);
document.querySelectorAll||(flag=1);
if (flag===1) {
    // load jQuery here
}
else {
    // no need for jQuery
}
这种方法有意义吗?有更好的办法吗


现场演示就在这里

不,我不会这样做


使用polyfill如果这是您想要的,可以很容易地使用加载程序和特定的polyfill脚本来完成。不,我不会这样做


使用polyfill如果这是您想要的,可以很容易地使用加载程序和特定的polyfill脚本来完成。整个方法非常合理。不过,您并不总是需要使用jQuery

对于选择器功能,您可以直接使用(5KB缩小和gzip),而不需要使用Sizzle作为选择器引擎的整个jQuery(30+KB)。(但要小心,Sizzle本身长期以来都与无法使用布尔属性选择器(如
[autofocus]
)有关。出于某种原因,该错误是在jQuery级别解决的,而不是在Sizzle级别解决的。)

对于JSON,可以使用(2.5 KB)


另外,通常最好直接检测特性(检查JSON的
window.JSON
对象和
qSA的
document.queryselectoral
),而不假设支持
JSON
意味着支持
queryselectoral()
整个方法是相当合理的。不过,您并不总是需要使用jQuery

对于选择器功能,您可以直接使用(5KB缩小和gzip),而不需要使用Sizzle作为选择器引擎的整个jQuery(30+KB)。(但要小心,Sizzle本身长期以来都与无法使用布尔属性选择器(如
[autofocus]
)有关。出于某种原因,该错误是在jQuery级别解决的,而不是在Sizzle级别解决的。)

对于JSON,可以使用(2.5 KB)



另外,通常最好直接检测特性(检查
window.JSON
对象中的JSON和
document.querySelectorAll
中的
qSA
),而不假设支持
JSON
意味着支持
querySelectorAll()
,你到底在写什么?Jquery不仅仅适用于json,它还具有许多其他功能,在大多数情况下可以很好地弥补浏览器的不足。我不确定您想要做什么。如果要检测用户的浏览器并更改代码。使用@Rup good point,我还需要编写包装函数,比如myJSON=window.JSON | |$。JSON@MarcB我主要需要JSON和DOM选择器。在我的情况下,其他jQuery函数没有带来多少价值,最终我不想被绑定到特定的库。@humaknight浏览器检测是不够的,功能可用性还取决于doctype。关键是我想在加载jQuery之前检测它。你到底在写什么?Jquery不仅仅适用于json,它还具有许多其他功能,在大多数情况下可以很好地弥补浏览器的不足。我不确定您想要做什么。如果要检测用户的浏览器并更改代码。使用@Rup good point,我还需要编写包装函数,比如myJSON=window.JSON | |$。JSON@MarcB我主要需要JSON和DOM选择器。在我的情况下,其他jQuery函数没有带来多少价值,最终我不想被绑定到特定的库。@humaknight浏览器检测是不够的,功能可用性还取决于doctype。关键是我想在加载jQuery之前检测它。我相信我的代码就是这样做的,单独检测特性?我理解特定库的好处,但单独加载它们也要付出代价。jQuery似乎是一个很好的折衷方案。根据您的代码,缺少
window.JSON
document.queryselect或all
都会导致
1
flag
值相同。至于单独的文件,没有什么可以阻止您将两个JS库合并到一个文件中;总大小将比jQuery的大小(约32KB)小得多(~7.5KB)。一般来说,只要确保独立库的代码片段之间有新行(换行符)就足够了。我相信我的代码就是这样做的,单独检测功能?我理解特定库的好处,但单独加载它们也要付出代价。jQuery似乎是一个很好的折衷方案。根据您的代码,缺少
window.JSON
document.queryselect或all
都会导致
1
flag
值相同。至于单独的文件,没有什么可以阻止您将两个JS库合并到一个文件中;总大小将远小于jQuery的大小(~7.5 KB)。一般来说,只要确保独立库的代码片段之间有新行(换行符)就足够了。在我的例子中,可选jQuery似乎是一个很好的折衷方案。我担心多个http请求的代价(首先是必须的yepnope,然后可能是几个polyfills)。我关心的是多个http请求的成本(首先是必须的yepnope,然后可能是几个polyfills)。