javascript - JSON stringify 在从 Dreamweaver 预览时有效,但在创建应用程序时不能从 .AIR 文件预览

标签 javascript html json air dreamweaver

我一直在使用 Adob​​e AIR(HTML 和 JavaScript 版本)开发一个简单的应用程序。

应用程序向在线 URL 提交表单。

表单的值是 JSON 字符串。

我正在使用此函数来提交数据:

function fetchStudents()
{

    var stmt = new air.SQLStatement();
        stmt.sqlConnection = conn;
        stmt.text = "SELECT * FROM studentsTable2 WHERE deleted='0'";
        stmt.addEventListener(air.SQLEvent.RESULT, function(event){ 

            var result = event.target.getResult();
            sync_students = JSON.stringify(result.data);

            fetchCourses(); 
        });
        stmt.addEventListener(air.SQLErrorEvent.ERROR, errorHandler);
        stmt.execute();
}

JSON.stringify 当我在 DREAMWEAVER 中测试应用程序时,可以使用:在 ADOBE AIR 中预览。

sync_students 是一个 JSON 字符串,其中填充了表中格式正确的所有数据。

但是当我创建 AIR 文件并安装该应用程序并运行它时,它不再起作用。

sync_students 是一个 JSON 字符串,但它完全是空的... [{},{},{}]

我阅读了很多资料,看到了使用 JSON2.js 等的建议,我已经尝试过这些,但没有成功。

这让我发疯,任何帮助将不胜感激。

提前非常感谢!

最佳答案

看看这个问题的已接受答案。这里的问题是垃圾收集“太早”回收了一些 var:换句话说,范围是 baaad。 :

AIR Sqlite: SQLEvent.RESULT not firing, but statement IS executing properly

编辑:所有这些都是范围问题。您应该研究“javascript 范围”和“javascript 闭包”关键字,以便更好地理解这一点(如果我可以建议的话)。

下面是关于在 javascript 中定义“类”的一种方式的(非常)简短摘要:

var MyNameSpace = {};  
var MyNameSpace.SchoolDataSource = function() {
  this.publicMember = 2;
  this.publicFunction = function(x) {
        var newValue = this.publicMember + _privateMemberOne + x;   
        return _privateFunctionMul2(newValue); 
     } ;
  var _privateMemberOne = 1;
  var _privateFunctionMul2 = function (y) { return 2*y; } ;
};

var mySchoolDataSource = new MyNameSpace.SchoolDataSource();

mySchoolDataSource.publicFunction(3); // ok. (returns (3+2+1) * 2 = 12)
var bar = mySchoolDataSource.publicMember; // ok. ( === 2)
mySchoolDataSource._privateFunctionMul2(4); does not work, which is what we want.
var foo= mySchoolDataSource._privateMemberOne; // does not work, which is what we want.

关于javascript - JSON stringify 在从 Dreamweaver 预览时有效,但在创建应用程序时不能从 .AIR 文件预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049270/

相关文章:

HTML - 将内容保持在页面底部之上

javascript - 如何将 SQLite 本地数据库连接到 HTML 前端?

javascript - 无法将日期打印到 json 文件

javascript - html内容的json解析错误

javascript - 使用 XMLHttpRequest 在 JS 中写入文件?

javascript - 将作用域传递给函数不起作用

javascript - zombie 代码中的语法 `async/await` 是什么?

javascript - 带有关闭菜单的 jQuery Accordion

java - 使用 Jackson JSON 解析器 : Complex JSON?

javascript - node.js - PM2 将未捕获的异常记录到第三方服务(作为 Logentries)