给出如下的javascript代码(从下面引用的插件中提取):
var AutosizeInput = (function () {
function AutosizeInput(input, options) {
var _this = this;
this._input = $(input);
this._options = options;
}
Object.defineProperty(AutosizeInput.prototype, "options", {
get: function () {
return this._options;
},
enumerable: true,
configurable: true
});
}
Run Code Online (Sandbox Code Playgroud)
该插件的完整代码位于:https://github.com/MartinF/jQuery.Autosize.Input/blob/master/jquery.autosize.input.js
从我读到的内容调用Object.defineProperty将无法在IE8上运行,因为这不是DOM对象.
这是准确的吗?..如果是......这将是重写这个getter(和setter)符合IE8的最好方法吗?
我目前正在审查Xamarin作为开发平板电脑应用程序的选项(目前正针对iOS和Android,但未来想到将其移植到Win8平板电脑)
要存储的数据非常敏感,因此安全性是我的主要关注点.
到目前为止,我正在考虑两种选择:
a)SQLite + SQLCipher:假设Win8平板电脑将支持SQLite,而SQLCipher也适用于Win8.
b)隔离存储+ DPAPI:假设这种DPAPI方法可以在Mono平台上运行,并且它仍然可以在Win8平板电脑上使用.
我担心的是,为了安全地存储密钥,我想我仍然需要为每个平台分开实现(iOS上的数据保护,我仍在审查Android和Win8平板电脑的选项).
是否有任何跨平台解决方案可以安全地存储加密密钥或另一种完全跨平台的方式来安全地存储数据?如果没有完全跨平台的解决方案,那么在每个平台上使用任何推荐的选项?
现在我有一部分代码如下:
__strong MyRequest *this = self;
MyHTTPRequestOperation *operation = [[MyHTTPRequestOperation alloc]initWithRequest:urlRequest];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *request, id responseObject) {
[this requestFinished:request];
}
failure:^(AFHTTPRequestOperation *request, NSError *error) {
[this requestFailed:request withError:error];
}];
Run Code Online (Sandbox Code Playgroud)
我主要是这样做的,因为其他一些类继承自此代码所在的类,并实现自己的requestFinished和requestFailed.
如果我将自引用更改为__weak,我会开始收到一些EXC_BAD_ACCESS错误.使用__strong引用一切正常,但我担心创建一个保留周期.请注意,我正在使用ARC.
此代码是否会创建一个会导致问题的保留周期?任何简单的解决方案?我可以遵循任何不同的方法让继承类实现自己的方法来处理响应?
实际上是否可以调用NSKeyedArchiver archiveRootObject并使用数据保护API将文件属性设置为NSFileProtectionComplete或NSFileProtectionCompleteUnlessOpen?
我目前正在接收一个编码为base64字符串的文件作为json有效负载的一部分:
{
"file":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGRlZmluaXRpb25zIHhtb..."
}
Run Code Online (Sandbox Code Playgroud)
使用该字符串我应该将文件作为multipart/form-data发布到不同的服务,所以我有一个像这样的方法(使用请求模块):
var request = require('request');
var fs = require('fs');
var importFile = function(fileBase64Encoded, cb) {
var decodedFile = new Buffer(fileBase64Encoded, 'base64');
var r = request.post('http://localhost:8888/upload', function (err, httpResponse, body) {
if (err) {
cb(err);
}
cb(null, body);
});
var form = r.form();
form.append('file', decodedFile);
}
Run Code Online (Sandbox Code Playgroud)
这目前无效.如果我将文件写入磁盘并从那里读取它,如下所示:
var request = require('request');
var fs = require('fs');
var importFile function(fileBase64Encoded, cb) {
var decodedFile = new Buffer(fileBase64Encoded, 'base64');
fs.writeFile('temp.txt', decodedFile, function (err) {
if (err) return console.log(err); …Run Code Online (Sandbox Code Playgroud) 我正在尝试修改其中一个示例以自定义单元格:
var oTable = $('#example').dataTable( {
"bProcessing": true,
"sAjaxSource": "sources/deep.txt",
"aoColumns": [
{ "mDataProp": "engine" },
{ "fnRender": function( oObj ) {
return "Test";
} },
{ "mDataProp": "platform.inner" },
{ "mDataProp": "platform.details.0" },
{ "mDataProp": "platform.details.1" }
]
} );
Run Code Online (Sandbox Code Playgroud)
其中使用的来源如下:
{ "aaData": [
{
"engine": "Trident",
"browser": "Internet Explorer 4.0",
"platform": {
"inner": "Win 95+",
"details": [
"4",
"X"
]
}
},
...
...
Run Code Online (Sandbox Code Playgroud)
数据显示正确但我开始收到"DataTables warning(table id ='example'):从第0行的数据源请求未知参数'1'"
我缺少什么?或者我应该以不同的方式做到这一点?
ios ×2
jquery ×2
datatables ×1
encryption ×1
iphone ×1
javascript ×1
jquery-ui ×1
json ×1
mono ×1
node.js ×1
objective-c ×1
xamarin ×1
xamarin.ios ×1