滚动加载外部脚本

时间:2020-02-25 09:15:24

标签: javascript jquery performance

我的网站上加载的外部脚本很少。例如,此Facebook Page Like Widget脚本。在用户向下滚动到某个位置或至少用户滚动之前,我不想加载它。如何使用jquery或ajax或其他方式实现此目的?

connect.facebook.net/en_US/sdk.js

             <script>
                    (function() {
                        var loadFB = function (d, s, id) {
                            var js, fjs = d.getElementsByTagName(s)[0];
                            if (d.getElementById(id)) return;
                            js = d.createElement(s);
                            js.onload = function() {
                                // After FB Page plugin is loaded, the height of its container changes.
                                // We need to notify theme about that so elements like eg. sticky widgets can react
                                FB.Event.subscribe('xfbml.render', function () {
                                    jQuery('body').trigger('g1PageHeightChanged');
                                });
                            };
                            js.id = id;
                            js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5";
                            fjs.parentNode.insertBefore(js, fjs);
                        };

                                                loadFB(document, 'script', 'facebook-jssdk');
                                            })();
                </script>

2 个答案:

答案 0 :(得分:0)

您可以为此使用滚动事件,请参考docs

答案 1 :(得分:0)

您可以尝试添加一个事件,该事件在达到某个div时触发:

import Utils from './'
import { getRandomNumber } from './getRandomNumber'

jest.mock('./getRandomNumber', () => ({
  getRandomNumber: jest.fn()
}))

describe('TicTacToe Utils', () => {
  getRandomNumber.mockReturnValueOnce(0)
  getRandomNumber.mockReturnValueOnce(1)

  const board = [
    [['X'], [], []],
    [[], [], []],
    [[], [], []]
    ]

  it('makeRandomComputerMove', () => {
    const location = Utils.makeRandomComputerMove(board)
    expect(location.x).toBe(0)
    expect(location.y).toBe(1)
  })
})

通过计算屏幕高度和格的位置。

没有全部代码,因此只能指导您使用“操作方法”的解决方案。

如果需要更多帮助,请附上其余部分!

相关问题