小编Dr.*_*YSG的帖子

存储脱机Web应用程序的映像数据(客户端存储数据库)

我有一个使用appcaching的离线Web应用程序.我需要提供大约10MB - 20MB的数据,它将保存(客户端)主要由PNG图像文件组成.操作如下:

  1. Web应用程序下载并安装在appcache中(使用清单)
  2. 服务器PNG数据文件的Web应用程序请求(如何? - 请参阅下面的替代方案)
  3. 有时Web应用程序与服务器重新同步,并对PNG数据库进行小的部分更新/删除/添加
  4. 仅供参考:服务器是JSON REST服务器,可以将文件放在wwwroot中以便提取

这是我目前对处理二进制blob存储的基于客户端的"数据库"的分析

在底部看到更新

  • AppCache(通过清单添加所有PNG,然后按需更新)
    • CON:PNG数据库项目的任何更改都意味着清单中所有项目的完整下载(真的是坏消息!)
  • WebStorage
  • PhoneGap和SQLLite
    • CON:赞助商将其拒绝为需要认证的原生应用
  • ZIP文件
    • 服务器创建一个zip文件,将其放在wwwroot中,并通知客户端
    • 用户必须手动解压缩(至少这是我看到的)并保存到客户端文件系统
    • Web应用程序使用FileSystem API来引用文件
    • CON:ZIP可能太大(zip64?),创建时间长
    • CON:不确定FileSystem API是否总能读出沙箱(我想是这样)
  • USB或SD卡(回到石器时代......)
    • 在脱机之前,用户将是服务器的本地用户
    • 所以我们可以让他插入SD卡,让服务器用PNG文件填充它
    • 然后用户将其插入笔记本电脑,平板电脑
    • Web应用程序将使用FileSystem API来读取文件
    • CON:不确定FileSystem API是否总能读出沙箱(我想是这样)
  • 的WebSQL
    • CON:w3c放弃了它(非常糟糕)
    • 我可能会考虑使用IndexedDB和WebSQL作为后备的Javascript包装器
  • FileSystem API
  • IndexedDB的
    • IE10中的良好支持,FireFox(保存,读取blob)
    • 比文件系统更快速,更易于管理(删除,更新)
    • PRO:请参阅速度测试:http://jsperf.com/indexeddb-vs-localstorage/15
    • 请参阅有关在IndexedDB中存储和显示图像的文章:https://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/
    • CON:我确认Chrome还不支持blob写入(当前的bug,但不清楚何时修复)
    • 更新:Chrome开发人员确认他们正在为桌面和Android工作!还没有时间表.
  • LawnChair JavaScript包装器http://brian.io/lawnchair/
    • PRO:非常干净的IndexedDB,WebSQL或任何数据库的包装器(想想polyfill)
    • CON:无法存储二进制blob,只能存储数据:uri(base64编码)(由于解码成本可能导致致命缺陷)
  • IndexedDB JQUERY polyFill https://github.com/axemclion/jquery-indexeddb
    • Parashuram为原始的IndexedDB接口编写了一个很好的JQUERY包装器 …

javascript html5 web-applications indexeddb leaflet

103
推荐指数
2
解决办法
3万
查看次数

使用Fiddler嗅探Visual Studio 2013请求(代理防火墙)

我遇到Visual Studio 2013和我们的公司代理问题(登录不起作用,更新不起作用,Visual Studio库不起作用,nuget和git失败).所有这些都在做http或https请求.(例如http://visualstudiogallery.msdn.microsoft.com/).在VS2013中,我只是获得了旋转进度条或没有网络连接的消息.

浏览器(chrome,IE,firefox)没问题,因为他们都理解代理(407拒绝,然后用凭据回复).

所以我想弄明白为什么VS2013不起作用.但是当我告诉fiddler2观看DEVENV.EXE进程(或所有进程)时,我看不到任何流量.

顺便说一下,我已经尝试对web.config(devenv.exe.config)文件进行一些更改,以确保它转到代理(我在堆栈生成器中看到了这个),但它对我不起作用.请参阅以下部分的补充内容:

    <system.net>
                <defaultProxy useDefaultCredentials="true" enabled="true">
                 <proxy proxyaddress="http://gw6.OURSITE.com:3128" />
                </defaultProxy>
      <settings>
        <ipv6 enabled="true"/>
        <servicePointManager expect100Continue="false" />
       </settings>
    </system.net>
Run Code Online (Sandbox Code Playgroud)

更新

埃里克,我接受了你的建议并把它塞进C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config文件中.

我放的是:

  <system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
      <proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
    </defaultProxy>
  </system.net>
Run Code Online (Sandbox Code Playgroud)

我发现VS2013没有发送用户代理字符串.它确实知道#407 naks并且它使用凭据进行回复,但网关仍然需要用户代理:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 1341

<html>
    <head>
        <title>Access Policy Denied: No User-Agent Specified</title>
        <meta name="description" content="Web Access Policy">
    </head>
    <body>
Run Code Online (Sandbox Code Playgroud)

proxy ntlm fiddler wcf-security visual-studio

46
推荐指数
3
解决办法
4万
查看次数

基于Inno Setup中的可选组件跳过自定义页面

在先前的问题中,我询问了如何使用三个可选组件,其中用户还可以单独指定每个组件的位置(例如,代码部分和两个HTML Web应用程序).@Miral给了我一个很好的答案,我现在已经实现了:
三个用户定义位置的三个组件

我还有一个小小的审美问题.我总是CreateInputDirPage在向导中创建并询问用户.问题出现在wpSelectComponents.

问题:如果未选择组件,如何跳过页面.也就是说,如何跳过我的自定义页面?

我有一种与它有关的感觉ShouldSkipPage().但我不知道PageID我的自定义页面是什么,以及如何测试以查看选择了哪些组件.

function ShouldSkipPage(PageID:Integer):Boolean;

向导调用此事件函数来确定是否应显示特定页面(由PageID指定).如果您返回True,将跳过该页面; 如果您返回False,则可能会显示该页面.

我的脚本如下:

[Components]
Name: "Watson"; Description: "Watson Component"; Types: onlywatson full
Name: "Toby"; Description: "Toby Component"; Types: onlytoby full
Name: "Sherlock"; Description: "Sherlock Component"; Types: onlysherlock full

[Code]
var 
    TobyDirPage: TInputDirWizardPage;
    SherlockDirPage: TInputDirWizardPage;

procedure InitializeWizard;
begin
  TobyDirPage := CreateInputDirPage(wpSelectComponents,
    'Select Location for Toby Web Pages', 'Where should we store the sample Toby application files?',
    'The sample Toby stand-alone map application will be saved …
Run Code Online (Sandbox Code Playgroud)

inno-setup

17
推荐指数
2
解决办法
1万
查看次数

如何使用WCF自托管处理Ajax JQUERY POST请求

创建RESTful WCF服务器有很多原因(很容易),如果你可以避免ASP及其安全框(如果你所做的只是返回信息的简单请求),那就更好了.请参阅:http://msdn.microsoft.com/en-us/library/ms750530.aspx了解如何执行此操作.

我发现处理AJAX(JQUERY)GET请求很容易.但是在POST中处理JSON很棘手.

以下是一个简单的GET请求合同的示例:

    [OperationContract]
    [WebGet(ResponseFormat = WebMessageFormat.Json)]
    String Version();
Run Code Online (Sandbox Code Playgroud)

实现就在这里(返回一个JSON)

    public partial class CatalogService : ICatalogService
{
    public String Version()
    {
        mon.IsActive = true;
        this.BypassCrossDomain();
        ViewModel.myself.TransactionCount++;
        return ViewModel.myself.VersionString;
    }
}
Run Code Online (Sandbox Code Playgroud)

啊,但如果你想发布一些JSON怎么办?你会发现很多关于堆栈溢出的文章告诉你所要做的就是:

    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    BuildResponse BuildToby(BuildRequest request);
Run Code Online (Sandbox Code Playgroud)

它将接收JSON消息,反序列化为Plain .NET对象(PO​​NO)并让您使用它.事实上,当我在Fiddler中构建请求时,这工作正常.

POST /BuildToby HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
Host: localhost:4326
Content-Length: 1999
Run Code Online (Sandbox Code Playgroud)

但是,当您在JQUERY 1.8中使用以下AJAX时,您会发现一个SURPRISE:

通过指定"application/json"的内容类型,您会发现有一个"预检"检查由浏览器触发,以查看您是否可以发布除了www-url-encloded post消息之外的其他内容.(堆栈中有关于此溢出的注释).

    var request = JSON.stringify({ FrameList: ExportData.buildList });
    var jqxhr = $.ajax({
    type: …
Run Code Online (Sandbox Code Playgroud)

wcf jquery http-post wcf-data-services

14
推荐指数
1
解决办法
1万
查看次数

将 Matlabplot 保存为 MLFlow 工件

我正在使用 DataBricks 和 Spark 7.4ML,

以下代码成功记录了参数和指标,我可以在 MLFLOW gui 中看到 ROCcurve.png(只是模型下方树中的项目)。但实际上剧情是空白的。为什么?

with mlflow.start_run(run_name="logistic-regression") as run:
  pipeModel = pipe.fit(trainDF)
  mlflow.spark.log_model(pipeModel, "model")
  predTest = pipeModel.transform(testDF)
  predTrain = pipeModel.transform(trainDF)
  evaluator=BinaryClassificationEvaluator(labelCol="arrivedLate")
  trainROC = evaluator.evaluate(predTrain)
  testROC = evaluator.evaluate(predTest)
  print(f"Train ROC: {trainROC}")
  print(f"Test ROC: {testROC}")
  mlflow.log_param("Dataset Name", "Flights " + datasetName)
  mlflow.log_metric(key="Train ROC", value=trainROC)
  mlflow.log_metric(key="Test ROC", value=testROC)

  lrModel = pipeModel.stages[3]
  trainingSummary = lrModel.summary
  roc = trainingSummary.roc.toPandas()
  plt.plot(roc['FPR'],roc['TPR'])
  plt.ylabel('False Positive Rate')
  plt.xlabel('True Positive Rate')
  plt.title('ROC Curve')
  plt.show()
  plt.savefig("ROCcurve.png")
  mlflow.log_artifact("ROCcurve.png")
  plt.close()
  
  display(predTest.select(stringCols + ["arrivedLate", "prediction"]))
Run Code Online (Sandbox Code Playgroud)

笔记本显示的内容:

在此输入图像描述

MLFlow 显示的内容:

在此输入图像描述

matplotlib apache-spark pyspark databricks mlflow

12
推荐指数
2
解决办法
2万
查看次数

反向Uglified Javascript代码

我正在寻找方式(最好和在线网站)反向Uglify的一些JavaScript.网站:http://jsbeautifier.org/非常适合小型化代码,但它对于丑陋的东西并不是很好.

javascript uglifyjs

10
推荐指数
2
解决办法
1万
查看次数

可以将动态对象转换为ExpandoObject(c#)

我从驱动程序api(在dll中)获得了一个类型为"密封类"的动态对象.我想用一些额外的属性来装饰这个对象.

我想做一些事情的效果:

public void expandIT(dynamic sealedObject) {

    ExpandoObject expand = new ExpandoObject(sealedObject);
    expand.time = DateTime.Now();
    etc....
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

我喜欢JCL的解决方案.但是对于我想要做的事情,创建一个ExpandoObject然后将Dynamic sealed class对象作为子属性嵌入,然后将我的属性添加到父ExpandoObject更容易.谢谢JCL,我正在大脑冻结如何做到这一点.一世

c# expandoobject c#-4.0

10
推荐指数
2
解决办法
9927
查看次数

如何在React-Bootstrap中使用Redux-Form?

我试图使用"redux-form":"^ 6.7.0"和"react-bootstrap":"^ 0.31.0"

我的组件呈现得很好,但是当我按下提交时,我看到的是一个空对象.

注意:我已经尝试首先使用connect包装Config,如下所示,首先用redux-form包装然后使用from react-redux connect()

Configuration.js

class Config extends Component {
    render() {
        const { ServerPort, UserID, PortNumber, WWWUrl, SourcePath, FMEPath, pickFile, pickFolder, handleSubmit } = this.props;
        return (
            <Form horizontal onSubmit={handleSubmit}>
                <FormGroup controlId="serverPortBox">
                    <Col componentClass={ControlLabel} sm={2}>Watson Port:</Col>
                    <Col sm={10}>
                        <OverlayTrigger placement="left" overlay={(<Tooltip id="tt1">TCP port for Watson to use</Tooltip>)}>
                            <Field name="WatsonPort" component={FormControl}
                                type="number" min="1024" max="65535" placeholder={ServerPort} />
                        </OverlayTrigger>
                    </Col>
                </FormGroup>

 ......

const CForm = reduxForm({
    form: 'configuration' // a unique name for this form
})(Config);

const Configuration = …
Run Code Online (Sandbox Code Playgroud)

redux-form

10
推荐指数
2
解决办法
5936
查看次数

React 导入导致无法解析模块说明符“react”

你可以说我傻(我不会认为这是针对我个人的),但我已经 3 年多没有使用 REACT 了,我的脑细胞肯定已经死了。

我收到错误:

localhost/:1 未捕获类型错误:无法解析模块说明符“react”。相对引用必须以“/”、“./”或“../”开头。

我确信这与我在 Chrome 中使用导入的方式有关。

索引.html

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
    <script src="../node_modules/react/umd/react.development.js"></script>
    <script src="../node_modules/react-dom/umd/react-dom.development.js"></script>
    <title>React App</title>
</head>

<body>
    <noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
    <script type="module" src="Main.js"></script>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

主.jsx

import React from 'react'
import ReactDOM from 'react-dom'
import App from 'App'


ReactDOM.render(
    <App />, 
    document.getElementById("root")
);
Run Code Online (Sandbox Code Playgroud)

Main.js

(在 babel cli 之后,带有 React 预设)

import React from 'react';
import ReactDOM from 'react-dom';
import …
Run Code Online (Sandbox Code Playgroud)

reactjs

10
推荐指数
2
解决办法
2万
查看次数

C#UDP客户端读取组播IP(本地接口),并向VPN发送单播UDP

我有一个VPN客户端,可以通过VPN管道发送单播UDP数据包,但不支持多播IP(UDP)数据包(OpenVPN).所以我想我可以编写这个带有IP(端口3000)多播的小垫片,并通过VPN作为单播发送它们.

我看到组播数据包到了,但我看不到任何东西到达VPN端(WireShark没有帮助,因为不像IpConfig/all)它没有看到VPN接口.).

我认为我的问题可能是我不清楚BIND和CONNECT之间的区别,以及我应该将UDPClient绑定到哪个接口(vpn或local).

命令行是:

239.0.0.0 198.168.0.15 10.4.30.239 172.27.225.77
arg[0] = multicast from address
arg[1] = unicast to address
arg[2] = local physical ethernet assigned address
arg[3] = virtual address of computer on VPN network (client)
Run Code Online (Sandbox Code Playgroud)
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Threading.Tasks;

namespace MUTunnel
{
    public class EchoBot
    {
        protected UdpClient sender;
        protected UdpClient listener;

        protected const int listenPort = 3000;
        protected const int outPort = 3000;

        protected IPEndPoint inPoint;
        protected IPEndPoint outPoint;
        protected IPAddress listenAddress;
        protected …
Run Code Online (Sandbox Code Playgroud)

c# multicast udpclient windows-networking

9
推荐指数
1
解决办法
790
查看次数