我最近继承了为生产网站维护一个庞大而丑陋的代码库。 把你的眼睛弄得很难看。虽然它很大,但它主要是PHP代码,除了UI中的一些“ajaxy”之外,它没有太多的JS。
我们当前的主要问题是网站太重了。主页目前的重量为1.6 Mb,所以我正在尝试清理一些东西。
主要浪费之一是每个页面都包含jQuery UI库,但我认为它根本不被使用。它绝对没有在主页和大多数页面中使用,所以我只想包含必要的内容。
我对jQuery并不是很有经验,我更像是一个原型人,所以我很想知道。有什么我可以搜索的,让我知道jQuery UI在哪里使用?
我正在寻找的是“常用字符串”,组件名称等
例如,如果这是scriptaculous,我会寻找“可拖动”,“效果”等内容。 有关jQuery UI的任何建议吗?
(当然,如果你能想到一种更强大的方法,可以在不破坏所有内容的情况下从不使用标签的页面中删除标签,我很乐意听到它)
谢谢! 丹尼尔
答案 0 :(得分:11)
jQuery UI有一个标准的命名约定you can view a full list of widgets/effects here。与该列表相比,您主要寻找相应的方法:
然而,这是一个很大的问题,但如果你的主要目标是减少页面有效负载大小,那么应该 无效。您的用户不应每次加载it should be cached on the client as determined by cache headers,另外your scripts should be minified (already provided version when you download it) and delivered gzipped。
此外,如果您选择这个选项,我会考虑using a CDN for both jQuery and jQuery UI和the stylesheets as well,如果您使用的是默认主题之一。
答案 1 :(得分:3)
我的建议是查看jQuery UI演示页面 - http://jqueryui.com/demos/ - 并查看每个演示并从每个演示中搜索主要的一个或两个关键字,就像您可能为Scriptaculous做的那样。祝你好运。
答案 2 :(得分:0)
查看这篇文章:https://medium.com/software-developer/finding-jquery-ui-usage-in-a-project-b4fbcfc938c8
它用于生成较大的正则表达式。
我将其用作基础并获得下一个正则表达式:
\.\s*(accordion|autocomplete|button|buttonset|datepicker|dialog|menu|progressbar|selectmenu|slider|spinner|tabs|tooltip|effect|switchClass|switchClass|draggable|droppable|mouse|resizable|selectable|sortable|disableSelection|enableSelection|removeUniqueId|scrollParent|uniqueId|zIndex)\s*\(|['"](blind|bounce|clip|drop|explode|fade|fold|highlight|puff|scale|shake|size|slide|transfer|easeInQuad|easeOutQuad|easeInOutQuad|easeInCubic|easeOutCubic|easeInOutCubic|easeInQuart|easeOutQuart|easeInOutQuart|easeInQuint|easeOutQuint|easeInOutQuint|easeInExpo|easeOutExpo|easeInOutExpo|easeInSine|easeOutSine|easeInOutSine|easeInCirc|easeOutCirc|easeInOutCirc|easeInElastic|easeOutElastic|easeInOutElastic|easeInBack|easeOutBack|easeInOutBack|easeInBounce|easeOutBounce|easeInOutBounce)['"]|:(data|focusable|tabbable)|\.ui\b
这里可能有很多误报,但我认为这是一个好的开始。无论如何,您都需要手动检查所有匹配项。
答案 3 :(得分:-1)
该库实际上应该只占页面大小的19k。
但你可以搜索$('或$。因为大多数,如果不是全部,jquery调用以$开头。
答案 4 :(得分:-1)
我建议搜索$(document).ready
或尝试找出代码库用来检查DOM是否已准备好进行jquery交互的等价物。由于UI添加需要DOM,所有对它们的调用都将在这些函数中 - 您可以看到它们发生的位置,您可以检查它们是否有任何常见的interactions or widgets