MiGL Tech.

苟利国家生死以,岂因祸福避趋之~

米国梁ID:BoyMgl
22389次访问,排名4816(-1)好友0人,关注者2
开朗乐观,喜欢创造,积极的面对挑战,希望能有一个安逸的环境让我做研究,信息与计算科学本科在读。
BoyMgl的文章
原创 39 篇
翻译 0 篇
转载 0 篇
评论 7 篇
米国梁的公告
Idea + Image + Innovation + Invent = I
最近评论
hfgayy:收藏!
fftaks:wow power leveling
BoyMgl:测试留言
meng_yao:您那有没有关于FTP文件操作的方法或类啊?
小弟不懂这方面的知识。
最好是关于C# 语言 WIN API 方面的。
有的话麻烦您给我讲讲。谢谢!
我会经常看您的BLOG的。
crackoctober:老米在csdn也有号啊,哈哈,今天跑来看看。。。。偶zql
文章分类
收藏
    相册
    我画的图
    技术联盟
    iShowing.net
    SJW's World
    vczh的博客
    YouYee.org
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Ajax陷阱-异步-下拉列表联动问题-[更新:2007-2-14]收藏

    新一篇: 关于table中的tbody的使用陷阱

    写在前面

            我也是刚接触Ajax不久,用的还不是很顺手,总是会遇到这样那样的莫名其妙的问题,好在通过努力都搞定了,卸下来大家分享一下,希望与各位交流。

    场景:实现下拉列表联动

    假设其中的封装操作没有任何问题

    // JavaScript
    function loadFaculties() {
        
    var xmlHttp = createXMLHttpRequest();
        
    var oFacultyManager = new FacultyManager(xmlHttp);
        oFacultyManager.fillSelectList();
    }

    function loadMajors() {
        
    var xmlHttp = createXMLHttpRequest();
        
    var oMajorManager = new MajorManager(xmlHttp);
        
    var iFacultyId = document.getElementById("f_faculty").value;
        oMajorManager.fillSelectList();
    }

    function initPage() {
        loadFaculties();
        loadMajors();
    }

    这是3个预置的方法,下面我们将在页面中调用initPage,在f_faculty的onchange事件发生时调用loadMajors()

    在body.onload事件中调用initPage你会收到500报错,前提是你是第一次加载f_faculty中的数据,每步跟踪调试,你会发现,其实iFacultyId的值是空的,也就是说loadFaculties并“没有执行完”就执行了loadMajors,这就涉及到异步的概念了,其实loadFaculties已经执行完了,只是这项访问的回调函数没有执行完,所以f_faculty并没有被完全填充,如果用DocumentFragment对象,那么很可能就没有被填充,所以,loadMajors自然会失败,服务器端自然无法收到与之对应的faculty的ID,所以访问数据库就会出错。

    这点对于维护基本数据是非常重要的,因为你的网页上不可能写上静态代码来规定列表框的项目,所以,为了增大代码的可复用性和灵活性,实现两个Major和Faculty两个模块得完全分离,我不推荐在两个对象之间互操作,所以,正如你所看到的,很多网站的列表框中会出现诸如“-select one-”这样的默认字段,我们推荐这种做法,这样在body.onload事件中只需调用loadFaculties方法就可以了,而f_major的字段可静止设为“-select one-”。

    发表于 @ 2007年02月14日 10:38:00|评论(loading...)|编辑

    旧一篇: 比较我和她……

    评论

    #crackoctober 发表于2007-06-23 16:04:13  IP: 222.221.164.*
    老米在csdn也有号啊,哈哈,今天跑来看看。。。。偶zql
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 米国梁