存储临时数据的最佳方式是使用javascript从web应用程序传递到桌面应用程序
Best way to store temp data to pass from web application to desktop application using javascript
我在这里寻找最佳实践。
我需要存储10个变量的信息,以某种格式:
lname: [John]
fname: [Doe]
etc...
使用Javascript。我在考虑用饼干。
我的场景如下:用户将在Salesforce.com中,并将客户的信息输入到记录中。然后他们会点击一个按钮获得报价。该按钮使用JS,将Salesforce字段写入临时文件(可能是cookie)。从那里,另一个MS应用程序将拾取该文件并读入值。
你们会怎么做?
谢谢你抽出时间。
一般来说,浏览器不允许您写入文件。为此,您必须使用一种机制来摆脱安全沙箱,例如签名的Java小程序。
Cookies在这里不是一个好的选择。桌面应用程序不应试图访问浏览器cookie;充其量,它被认为是"行为不端的代码";最坏的情况是,你将无法做到这一点,否则你的应用程序将被检测为恶意软件。即使它被认为是可以的,你也必须为你想要支持的任何浏览器编写cookie读取实现,因为它们在本地存储的方式没有标准。
为什么不让桌面应用程序代表用户访问网络?将SFDC报价请求写入新的SFDC自定义对象,如quote_Request__c或类似对象,应用程序可以通过API查询用户创建的最新记录。
剪贴板集成虽然有时看起来很笨重,但可能是一种低成本的选择。
如果你必须写入某种本地文件,你需要使用Flash或Java,或者让用户在本地保存一些下载的文件(就像任何正常的浏览器下载一样)。
另一种选择是将您的桌面应用程序注册为URL协议处理程序;所以,比方说,myquote://firstname/lastname/product/price/etc可以从web浏览器中单击以启动应用程序并解析"URL"。不过,在处理非常长/复杂的数据时可能效果不佳。
是的,在这种情况下,cookie当然是一个选项。Cookie可通过document
全局对象(例如document.cookie
)访问。它可以包含一个字符串和一个过期日期。
这是我写的一个cookie处理程序:
http://jsfiddle.net/zbaJz/1/
使用这个处理程序,你可以将信息存储在cookie中,并可以查看和删除它。然后,使用JSON字符串,你可以向它传递一个对象。
var name = {
'fname': 'John',
'lname': 'Doe'
};
var jsonText = JSON.stringify(name);
var cookieMonster = new Ovenmitts();
cookieMonster.bakeCookie('name', jsonText);
然后,为了将数据转换回要操作的对象,您将使用JSON.parse
。
var cookieInfo = cookieMonster.admireCookie('name');
var revived = JSON.parse(cookieInfo);
您可以向MS应用程序添加一个线程/任务,以监视创建cookie的目录中的更改。当你检测到一个符合你要求的新文件时,你可以对它采取行动。你需要使用DirectoryInfo来实现这种方法。您还可以创建和窗口或应用程序侦听的web服务,并可以通过这种方式从web应用程序传递数据。
- 在Web应用程序中使用Highcharts javascript
- 将下载链接从web浏览器传递给第三方应用程序
- 在web应用程序中的新搜索中重新加载搜索结果(不带jQuery)
- Web应用程序,将成员状态更新为其他成员
- 同一文本框中的验证程序CPF e CNPJ(ASP.NET web应用程序)
- web浏览器中的离线应用程序存储数据并在之后上传
- 使用Ember的Web应用程序架构.动画逻辑应该放在哪里
- 如何使用默认的网络摄像头拍摄照片并将其保存在我的c#.net web应用程序中
- c#web应用程序中的条形码打印
- 使用javascript为web应用程序自定义键盘快捷键
- 使用angularjs和node.js时的Web应用程序文件夹结构
- PhpWindows 8.1版本上的Javascript web应用程序
- 是否有任何开源web应用程序具有良好的QUnit(或JSUnit)测试用例
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 无法在Windows 10 Cordova应用程序中从Web视图进行ajax调用
- 如何获取使用我们的脚本或web应用程序的网站名称
- 没有框架/DLL的VS Web应用程序项目
- 正确传输和保护用户'web应用程序的密码
- 检查Progressive web应用程序中的网络更改
- 如何在应用程序>Web浏览器控件中使用Google Maps API v3 ClientID