xhm1027
游民
积分:112

dataset的http方式中src动态更改后出现问题(模拟器中出错,而浏览器中正常)

dataset如下:
< dataset name="news" type="http" >< /dataset >
当绑定到view以后,用
news.setSrc(str);
news.doRequest();
来更新数据(其中str为xml格式的数据源)时,用模拟器察看数据显示出错,而浏览器显示正确。
其中news是用于多行显示的,好像单行的就不会出问题。
请问这是什么原因?

xhm1027
游民
积分:112

自己顶下

nancy
版主
积分:2542

这个简单的例子可以啊





var str="http://rss.sina.com.cn/finance/jsy.xml"; [^]
tds.setSrc(str);
tds.doRequest();







xhm1027
游民
积分:112

我写的程序和这个类似,但是有几点区别:
1、view类似tds:/rss/channel/item,没有最后的[1-2];
2、通过按键来再次serSrc和doRequest.第一次init时我的也没有问题。
我的程序第一次加载时候也没有问题,当通过按键第二次加载时就出现问题了。我觉得是模拟器的解释问题,因为在浏览器中都很正常。希望给解答一下。

xhm1027
游民
积分:112

还没人解答阿?

openface
技术支持
积分:500

请您给个简单比较全的代码

估计是我们EFC的一个bug。

nancy
版主
积分:2542

这似乎不是一个完整的代码,即使在OpenLaszlo的环境下(即邮件中说的浏览器)也似乎没有看到正确的结果(或者是我操作方法不对,所以一般提交问题应该说明操作步骤),从代码中看有以下方面的:

1、 动态更改src问题

更改src时,src必须是一个有效的完全路径(绝对路径)的http地址,以“http://”开始,OpenFace和OpenLaszlo不一样的地方是OpenLaszlo的应用有Server和SOLO两种模式,而OpenFace只有SOLO一种模式。一般情况下OpenLaszlo的环境(浏览器中)就是Server模式,在Server模式下,一个http地址可以用相对路径表示,比如 "book.xml”,假如说你的编译应用的地址是http://localhost:8080/OpenLaszlo/myApp/index.lzx,那么这个相对地址就等效于http://localhost:8080/OpenLaszlo/myApp/book.xml。

因此在这个应用中,直接使用

var str="book"+ex+".xml";

lessons.setSrc(str);

是不对的,这里是相对地址,正常应该是

var
str="http://localhost:8080/OpenLaszlo/myApp/book"+ex+".xml";//注意这个地址只能模拟器访问到,手机上还不行

lessons.setSrc(str);

2、 一些对象在源代码中没有

比如121的lessonV ,xml中并没有id或者name为lessonV的元素。

----- OpenFace技术支持