加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax页面加载-Dojo

发布时间:2020-12-16 02:46:54 所属栏目:百科 来源:网络整理
导读:嗨我有一个页面,左侧有导航菜单,任何链接 单击此菜单,将Ajax get调用发送到服务器 右侧使用新页面进行更新. 我目前这样做是通过创建2列,左列 包含导航链接,右边的col包含一个名为the的div 具有dojox.layout.ContentPane.Now的dojotype的内容 从服务器收到数
嗨我有一个页面,左侧有导航菜单,任何链接
单击此菜单,将Ajax get调用发送到服务器
右侧使用新页面进行更新.

我目前这样做是通过创建2列,左列
包含导航链接,右边的col包含一个名为the的div
具有dojox.layout.ContentPane.Now的dojotype的内容
从服务器收到数据,我改变了这样的内容

dijit.byId("thecontent").setContent=data

现在当我点击导航链接时,右侧会得到
正确显示(此页面有dijits和一些脚本)
处理onclick事件).但是,firebug返回错误说

"Tried to register widget with id==thecontent but that id is already registered"

我的主要道场包括如下: –

<script type="text/javascript" src="http://o.aolcdn.com/dojo/1.5/dojo/dojo.xd.js"djConfig="parSEOnLoad:false"></script>

我在函数dojo.addOnLoad中执行dojo.parser.parse(),如下所示: –

dojo.addOnLoad(function(){
     dojo.require("dijit.form.Button");
     dojo.require("dijit.form.Textarea");
     dojo.require("dijit.form.ValidationTextBox");
     dojo.require("dojox.layout.ContentPane");
     dojo.require("dijit.Editor");
   dojo.addOnLoad(function(){
        dojo.parser.parse();
        sendgetrequest();//this initiates the xhrget request
        dojo.removeClass(dojo.byId("doc3"),"hiddendiv");
        }

);
    })

我也无法在这个新加载的页面中运行任何脚本.没有onclick事件正在运行,只显示dijit小部件…

解决方法

正如肯已经说过的那样,错误意味着你正在创建一个已经存在id的dijit.我的猜测是你在右侧面板中加载AJAX内容而不先破坏旧的右侧面板.

在加载新内容之前,尝试在右侧面板中的主dijit容器上调用destroyRecursive.另外,如果你不需要设置dijit的id,你可能会丢弃id(但这会留下一个内存空洞,因为旧的dijit不会被破坏).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读