假设这两种方法都正确加载脚本,并且在使用脚本之前等待适当的时间(和/或使用回调),这些方法之间的主要区别是什么。 注意:我理解第一个使用jQuery(这是一个更大的下载等)。 我真正感兴趣的是这些方法的后效。 是否将脚本放在与另一个不同的范围内? 等等。 jQuery的: function loadScript() { $.getScript(‘http://www.mydomain/myscript.js’); } 附加到身体: function loadScript() { var script= document.createElement(‘script’); script.type= ‘text/javascript’; script.src= ‘http://www.mydomain/myscript.js’; script.async = true; document.body.appendChild(script); } 附加头: function loadScript() { var head= document.getElementsByTagName(‘head’)[0]; var script= document.createElement(‘script’); script.type= ‘text/javascript’; script.src= ‘http://www.mydomain/myscript.js’; script.async = true; head.appendChild(script); }
这里有一个真正的JQuery UI天才:我们有一个非常长的forms,按需加载部分(例如,当点击索引/导航时,或当我们在当前部分的边缘滚动时)。 当我在当前查看的部分下面加载部分时,这不会影响当前滚动(即scrollTop)位置,但是当我在当前查看部分上方插入新部分时,它当然会将查看的内容向下推。 我们需要保持相对于当前部分的scrollTop位置。 我们还需要在进行调整时避免显示跳跃/毛刺。 我们正在考虑的选项: 加载内容并按加载项的高度调整scrollTop位置(这可能会因为DOM更改可能比scrollTop调整慢得多而出现故障)。 在屏幕外加载新部分,测量高度。 然后插入该部分并按该量调整scrollTop(由于DOM更新,可能仍然是故障)。 将要加载的部分设置为较大的固定高度(例如100/1000像素)并调整scrollTop以匹配,以便当前视图不会移动。 将内容加载到该部分,然后测量实际的新内容高度并移除固定高度,同时调整scrollTop以匹配实际高度。 不要使用传统的滚动,而是编写一个自定义滚动条,它保持自己的相对偏移并将现有的部分分开以适应新的部分。 然后问题就是编写自定义滚动条替换(对于像我们正在使用的nicescroll这样的东西)。 暂时将当前查看的部分的位置更改为绝对(从屏幕偏移计算的位置),以将其从流程中取出。 更新其后面的父滚动窗口内容,然后在重新计算新的scrollTop后再次使查看的部分相对。 还有什么我们没有想过的? 我想要一些实际上必须解决这个问题的人提出一些建议。 重要的是屏幕不会出现故障,因此应避免将scrollTop同步到缓慢的DOM更新。 对拟议解决方案的建议或意见? 是否有可以执行此操作的滚动替换? 如果你无法解决它,但认为它值得解决,请考虑提升,这样我就可以获得大笔奖金! 🙂
我在 元素中有一个搜索结果列表,其中包含静态高度和overflow: auto; 在风格。 我想只加载前x个搜索结果(例如20个),并在用户滚动到包含搜索结果的元素的底部时加载另一个x结果。 任何人都可以向我解释我会怎么做? 我找到了一些示例,但所有这些示例都使用整个文档的滚动值,而不是单个 。 我正在使用jQuery,如果重要的话。