ajax 异步返回的页面中,加载外部 vendor.js,要怎么实现呢?

2020-04-24 00:12:57 +08:00
 lisisi

有一个页面内容,是用 ajax 异步返回内容:

<head>
    <script src="js/vendor.js"></script>
</head>

<body>
    <div id='demo'>demo</div>

    $.ajax({
        url: '/url',
        data: data,
        type: 'GET',
        success:function(response_view){
            document.querySelector("#demo").innerHTML=response_view;       
        }
    });

</body>

由于 response_view 是异步加载的,vendor.js 不能处理 response_view 里的内容。

请教问题:想要让 ajax 加载完 response_view 的内容之后,再执行 vendor.js 的内容,要怎么实现呢?

2280 次点击
所在节点    JavaScript
9 条回复
cydian
2020-04-24 00:14:52 +08:00
vendor 后置,ajax 同步。
或者 ajax 完成后插入 vendor
lisisi
2020-04-24 00:26:55 +08:00
@cydian 帖子里有个问题可能没描述清楚:$.ajax() 部分是由用户 onclick() 触发的,所以把把 <script src="js/vendor.js"></script> 放在页底部分,也没有用。
raindropsaber
2020-04-24 00:36:38 +08:00
ajax 回调里操作 dom 创建 script 标签。
cydian
2020-04-24 00:59:39 +08:00
@lisisi 我在一楼的回复中有
ajax 完成后插入 vendor
也就是 3 楼的方案
autoxbc
2020-04-24 01:55:49 +08:00
vendor.js 里监听 DOM 突变事件
huijiewei
2020-04-24 02:28:08 +08:00
用事件委托

把事件绑定到 response_view 的上级 DOM 就好了
ccraohng
2020-04-24 07:27:44 +08:00
vendor 暴露出执行方法
onfuns
2020-04-24 09:04:03 +08:00
写自定义事件 customEvent 啊,ajax 请求完成后触发事件。或者封装个发布订阅的类,都是一样的模式。
azcvcza
2020-04-24 10:42:30 +08:00
可以写个事件订阅,请求成功后就派发,然后在 vendor.js 里监听事件,查看 nodejs 的 eventEmitter

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/665515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX