从服务器获取小工具的信息(Vista / 7)

时间:2010-01-28 16:46:43

标签: windows-desktop-gadgets

大家好..
我想从我的数据库中获取一些信息并显示到我的侧边栏小工具(我是关于小工具编码的新手)。我尝试了很多方法,但我还没有成功 为此,我准备了一个php文件来从我的数据库中获取一些值(在服务器上),我想得到这个php文件的内容(结果)。

由于视觉原因,我不想使用iframe。

实际上,我可以按照任何方式去做。如; 直接从数据库获取数据(安全问题),从php获取指定的文本(放在特殊div中的值)或将所有内容的php和样式放入侧边栏,有/无GET,POST方法或其他任何内容:) /> 谢谢你......

注意:我知道(半专业)PHP,JavaScript,CSS但我不知道C#,VB等。

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式访问​​数据。第一种是直接使用ADO,一种内置于Windows中的COM对象,可以连接到数据库。这种方法有一些缺点,最重要的是它不是很安全 - 您的数据库用户名和密码必须以纯文本形式存储在小工具的脚本文件中,供任何人查看。对于有限的权限设置,这并不是那么糟糕。

大多数开发人员会使用PHP和XMLHttpRequest()的组合。正如您自己建议的那样,PHP将根据请求从数据库中获取数据。 XMLHttpRequest是用于获取页面内容的内容。您唯一需要决定的是输出数据的格式; XML,JSON或其他东西。 XML和JSON可以由您的小工具解析,因此其中任何一个都是一个很好的选择。如果您运行的是PHP 5.2或更高版本,那么JSON support is native。它足够直接从数据库中获取数据作为关联数组,然后json_encode并打印结果。

XMLHttpRequest示例

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://mysite.com/test.php", true);
xhr.onreadystatechange = function ()
{
    // readyState 4 = complete, status 200 = HTTP OK
    if (xhr.readyState == 4 && xhr.status == 200)
    {
        parseData(JSON.parse(xhr.responseText)); // parse a JSON response
        // parseData(xhr.responseXML); // parse an XML response
    }
}
xhr.send();

在安装了IE8的计算机上运行的小工具可以原生使用JSON.parse(),IE8之前需要eval()数据或通过安全解析器运行(大多数eval确保数据是有效的JSON)。

更多阅读:

XMLHttpRequest Object (MSDN)
JSON in JavaScript