如何处理Pjax局部刷新导致的 js 效果失效

    选择打赏方式

微信公众号伊伊兔,QQ群号:455535550,淘宝天猫优惠劵领取网站:dy208.cn

今天在更新网站图片查看功能的时候遇到了个小问题,有些局部页面中的组件需要等待加载后才能初始化,

因为pjax异步刷新的原因导致网页加载之后已经调试好的view.js功能无法实现,必须刷新一次网页才生效。

一直在想如何全局处理这部分需要手动初始化的代码,弄到最后跪了,还是局部实现吧...

局部实现 最简单粗暴, 把局部页面中的逻辑 js 放在局部页面中,就搞定了!

举个例子吧,需要初始化的代码是

<script>
  $(function(){
    $('.container').html('World')
  })
</script>


你把它放在异步刷新的局部代码里就行了

<div class='container'>
  Hello
</div>
<script>
  $(function(){
    $('.container').html('World')
  })
</script>


但这种局部实现的方法还是有很多缺点的,碰巧我模板避过了这些缺点。

在浏览器中每点击一次都会重复的加载一次 js 代码,如果有 on 事件的话会重复进行添加,要解决重复添加 必须在 on 事件之前 取消一次事件绑定。 因为 js 加载到浏览器中没办法进行释放。还有现在 vue 和 angular 好像都是加载局部页面不加载 js 代码,所以,这个方法仅供参考...

版权声明:若无特殊注明,本文皆为《 子成君 》原创,转载请保留文章出处。
本文链接:如何处理Pjax局部刷新导致的 js 效果失效 https://www.zcjun.com/learn/289.html
百度收录:本文已被百度收录点击查看详情!
本文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

爱你允悲悲伤吃惊委屈可怜憧憬吃瓜大哭开心坏笑笑哭哼打哈欠鼓掌乖嘘阴险日了狗费解挤眼滑稽666比心

已有1条吐槽

匿名

2018-12-28 10:20 浙江省杭州市 电信
face 看哭了
 Windows 7 x64   Google Chrome 70.0.3538.110