如何在代码中查找 jQuery 或 Zepto 的所有用法
我和我的团队希望在使用 Zepto 时保持从 Zepto 切换到另一个框架或本机浏览器调用(我们仅针对 WebKit)的低成本。
跟踪代码中使用 Zepto 的位置有哪些策略? 还有什么比维护所用方法的自述文件列表更好的吗? 你会怎么做?
My team and I want to maintain a low cost for switching from Zepto to another framework or native browser calls (we only target WebKit) while using it.
What are the tactics of keeping track of the places in the code where Zepto is used?
Is there anything better that maintaining a Readme list of methods used?
How would you do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
jQuery:您可以使用
noConflict
为jQuery
函数指定一些好听的、唯一的名称(也许jQuery
本身就是这是内置的,但如果这是一个痛苦的东西,很容易与其他东西区分开来,比如 $jq 或类似的东西 -noConflict
返回jQuery
功能让你可以做例如var $jq = jQuery.noConflict();
)。Zepto:尽管声称“jQuery 兼容语法”,但它本身似乎并不支持
noConflict
。但是,看起来如果$
已经在window
对象上定义,它将保留它,因为这一行:所以定义
$
在加载Zepto
之前,然后仅在代码中使用Zepto
(或为其分配同样唯一的内容,例如$jq
或$ zt
等—例如,var $zt = Zepto;
)。无论哪种情况:如果/当您需要查找这些位时,请搜索您的代码。
jQuery: You can use
noConflict
to assign some nice, unique name to thejQuery
function (perhapsjQuery
itself as that's built-in, but if that's a pain something else readily distinguished from other things, like$jq
or some such —noConflict
returns thejQuery
function so you can do that, e.g.var $jq = jQuery.noConflict();
).Zepto: Despite claiming a "jQuery-compatible syntax," it doesn't appear to support
noConflict
per se. However, it looks like if$
is already defined on thewindow
object, it will leave it alone, because of this line:So define
$
before loadingZepto
and then only useZepto
in your code (or assign something to it that's equally unique, like$jq
or$zt
, etc. — e.g.,var $zt = Zepto;
).In either case: Then search your code for those if/when you need to find those bits.
除了搜索 $ 和特定方法之外,您还可以通过在运行代码中记录它们的使用情况来识别正在使用哪些方法。
以下代码将在您每次进行 jQuery 调用时记录所使用的函数和堆栈跟踪,但不会记录 jQuery 进行的任何内部调用。
当然例外的是 jQuery 调用中的 jQuery 调用,例如
$(document).ready(function(){$('div')});
。Beyond searching for $ and specific methods, you could identify which methods are in use by logging their usage in running code.
The following code will log the function used and the stack trace every time you make a jQuery call but not log any internal calls made by jQuery.
The exception of course would be jQuery calls inside jQuery calls like
$(document).ready(function(){$('div')});
.嗯,你可以搜索
$
符号吗?像
parents()
这样的每个方法都会在最终使用$
符号创建的东西上调用。因此,如果您找到$
的所有实例并跟踪结果变量的使用,您将获得一切。Um, you could search for the
$
sign?Every method like
parents()
will be called on something that was ultimately created with the$
sign. So if you find all instances of$
and trace the use of the resulting variables you'll have everything.