小编Kei*_*ith的帖子

浏览器功能检测:拼写检查?

所有体面的浏览器(Chrome,FX等)现在都支持内置的拼写检查.

然而IE的流行但垃圾轴却没有(甚至不是IE8 - 毫无意义的'加速器':是的,非常需要字典支持:否).除非你下载一个优秀的免费插件,但你不能指望corp用户这样做.

我们的客户希望在我们提供的企业网络应用程序中进行拼写检查,因此我们购买了第三方拼写检查组件以保证他们满意.它可以工作,但并不是非常好 - 特别是与浏览器中内置的任何东西相比.

它看起来也像Word 2000中的拼写检查对话框(可能是在开发时的当前版本).对我们的客户来说不是这样的问题,其中一半人被困在Office 2000和IE6上.

我想只在用户没有内置拼写检查时启用此组件.

有谁知道检测这个的方法?

spell-checking cross-browser browser-feature-detection

5
推荐指数
1
解决办法
2283
查看次数

刷新IE6内存泄漏?

我每隔几秒钟重新加载一个页面以从服务器获得更新,这个页面可以打开,这可以永远发生 - 我猜,特别是因为这个浏览器是在一个没有关闭的远程服务器上.

我这样做:

setTimeout(function () {
        location.href = location.href; // forces a reload from the server
    }, 1000*10*0.5); 
Run Code Online (Sandbox Code Playgroud)

我注意到IE6的内存使用量不断增加和增加.该页面除了刷新和显示html之外什么都不做.

为什么会这样?我怎么能解决这个问题呢?我不想崩溃IE6.

它在435,000K,大约30分钟.

谢谢大家

更新

对不起大家 - 每次加载页面时都会运行另一个函数:

function recreateTicks(tasks){

 if(tasks!=''){

  var myTicks = tasks.split(',');

  var length = myTicks.length;

  for(var i=0; i<length; i++){

   var element = myTicks[i];

   $('#'+element).attr('checked', true);

  }

 }

}
Run Code Online (Sandbox Code Playgroud)

上面有什么问题吗?循环参考??

更新2

上面的函数调用如下:

<script type="text/javascript">
<!--PHP Generated-->
var tasks = 'ab_1, ab_2, ab_3';
</script>
<script type="text/javascript">
$(document).ready(function(){     
recreateTicks(tasks);
});
</script>
Run Code Online (Sandbox Code Playgroud)

javascript jquery internet-explorer internet-explorer-6

5
推荐指数
2
解决办法
1198
查看次数

为什么我的aspx页面没有被缓存在客户端上?

我有一个动态生成的CSS文件.它相当大,并且针对不同的浏览器具有不同的内容.它很少变化.

所以在.aspx页面顶部我有:

<%@ OutputCache Duration="86400" 
                Location="ServerAndClient" 
                VaryByParam="none" 
                VaryByCustom="browser" %>
Run Code Online (Sandbox Code Playgroud)

我对生成动态图像的MVC操作有类似的指令:

[OutputCache(Duration = 86400, 
             VaryByParam = "none", 
             Location = OutputCacheLocation.ServerAndClient)] 
Run Code Online (Sandbox Code Playgroud)

这应该导致文件缓存在服务器和客户端(但不是中间代理)一天.

响应标头似乎是正确的:

HTTP/1.1 200 OK
Cache-Control: private, max-age=83831
Content-Type: text/css; charset=utf-8
Expires: Wed, 09 Jun 2010 08:52:45 GMT
Last-Modified: Tue, 08 Jun 2010 08:52:45 GMT
Vary: *
Server: Microsoft-IIS/7.0
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Tue, 08 Jun 2010 09:35:34 GMT
Content-Length: 70073
Run Code Online (Sandbox Code Playgroud)

服务器端缓存工作 - 进一步的请求不再执行代码.

然而,客户端缓存以两种不同的方式被破坏:首先,在每个页面上再次请求内容,尽管它应该被缓存.

为什么浏览器会再次请求内容?

其次,当再次向服务器询问内容时,它返回HTTP 200以及整个内容.它应该返回没有正文的HTTP 304 Not Modified - 告诉浏览器重新使用它已经下载的内容.

当内容未更改时,如何确保它返回HTTP …

asp.net asp.net-mvc iis-7 caching http

5
推荐指数
1
解决办法
1150
查看次数

哪个是避免n + 1问题最快的表现方式?为什么?

我想添加一些实用程序方法来帮助避免遗留应用程序中的许多n + 1问题.

常见的模式是这样的:

select a.* /* over 10 columns */
from [table-A] a
where /* something */
Run Code Online (Sandbox Code Playgroud)

检索到ClassA记录实例的集合

然后,子实例是惰性检索的:

select b.* /* over 10 columns */
from [sub-table-B] b
where b.ParentId = @ClassA_ID
Run Code Online (Sandbox Code Playgroud)

这导致n + 1选择问题.大多数情况下,这不是一个主要问题,因为ClassA在不经常命中的页面上只检索了几个实例,但是在越来越多的地方,这个n + 1问题导致页面变得太慢,因为应用程序已经缩放.

我正在寻找替换此应用程序的现有数据访问代码的一部分,以便一起检索ClassA实例和ClassB实例.

我认为有三种方法可以做到:

1)ClassA像我们现在一样获取实例,然后ClassB在一个聚合调用中获取实例:

select b.*
from [sub-table-B] b
where b.ParentId in ( /* list of parent IDs */ )
Run Code Online (Sandbox Code Playgroud)

这是两个单独的DB调用,动态SQL的查询计划将不可缓存(由于ID列表).

2)ClassB使用子查询获取实例:

select b.*
from [sub-table-B] …
Run Code Online (Sandbox Code Playgroud)

sql optimization orm select-n-plus-1

5
推荐指数
1
解决办法
486
查看次数

为什么VB.Net不能在接口上找到扩展方法?

我有一个C#库,它有一个扩展方法,如:

public interface ISomething { ... }
public class SomethingA : ISomething { ... }
public class SomethingB : ISomething { ... }

public static class SomethingExtensions 
{
    public static int ExtensionMethod(this ISomething input, string extra) 
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

如果从C#调用,扩展可以正常工作,但是如果从外部VB.Net应用程序调用则会出现问题:

Dim something = Me.SomethingManager.GetSomething(key)
Dim result = something.ExtensionMethod("extra")
Run Code Online (Sandbox Code Playgroud)

这编译很好但在运行时抛出异常:

未找到类型'SomethingB'上的公共成员'ExtensionMethod'.

如果将VB.Net更改为显式使类型为其工作的接口:

Dim something as ISomething = Me.SomethingManager.GetSomething(key)
Dim result = something.ExtensionMethod("extra")
Run Code Online (Sandbox Code Playgroud)

为什么?为什么扩展方法适用于接口而不是实现它的类?如果我使用子类,我会遇到同样的问题吗?VB.Net的扩展方法的实现是否不完整?

我可以在C#库中做些什么来使VB.Net在没有显式接口的情况下工作吗?

.net vb.net extension-methods

5
推荐指数
1
解决办法
2454
查看次数

使用 TypeScript 针对不同的 Javascript 版本

TypeScript 可以全局定位不同版本的 Javascript - 您可以在转译 ES3、ES5 或 ES6 之间切换。

我们必须支持 IE,所以 ES3 是我们的最低公分母。

然而,好的浏览器(如 Chrome)已经支持 ES6,并且能够通过优化运行明显更小的 ES6 代码。

因此,我想从同一个 TypeScript 源为 IE 提供 ES3,为 Chrome 提供 ES6。

  • 有没有办法让 TypeScript 转译多个 JS 文件(可能是*.es3*.es6或类似的东西),以便我们可以选择要提供的版本?(最好是 VS 2015)

  • 或者,在 C# 中,我可以访问 TypeScript 转译器以在运行时完成该步骤吗?

visual-studio ecmascript-5 typescript ecmascript-6 ecmascript-3

5
推荐指数
1
解决办法
2979
查看次数

将 Newtonsoft.Json.JsonConvert 的比较器设置为用于 HashSet/Dictionary

我有一个HashSet<string>JsonConvert.SerializeObject串行化到一个数组。

当我反序列化 using 时,JsonConvert.DeserializeObject<HashSet<string>>我会得到一个HashSet<string>具有相同值的新值。然而,Comparer已经被重置。

// JSON settings
var settings = new JsonSerializerSettings
{
    ContractResolver = new CamelCasePropertyNamesContractResolver()
};

// Create a case insensitive hashset
var h = new HashSet<string>(new string[] {"A", "b"}, StringComparer.OrdinalIgnoreCase);
h.Contains("a"); // TRUE

// Serialise and deserialise with Newtonsoft.Json
string s = JsonConvert.SerializeObject(h, settings);
// s = ["A", "b"]
var newH = JsonConvert.DeserializeObject<HashSet<string>>(s, settings);

// Result is now case-sensitive
newH.Contains("a"); // FALSE
newH.Contains("A"); // TRUE
Run Code Online (Sandbox Code Playgroud)

这是因为JsonConvert …

json.net

5
推荐指数
1
解决办法
826
查看次数

使用chrome.tabs.executeScript执行异步功能

我有一个我想在页面中执行的功能chrome.tabs.executeScript,从浏览器动作弹出窗口运行.权限设置正确,它可以与同步回调一起正常工作:

chrome.tabs.executeScript(
    tab.id, 
    { code: `(function() { 
        // Do lots of things
        return true; 
    })()` },
    r => console.log(r[0])); // Logs true
Run Code Online (Sandbox Code Playgroud)

问题是我想调用的函数经历了几次回调,所以我想使用asyncawait:

chrome.tabs.executeScript(
    tab.id, 
    { code: `(async function() { 
        // Do lots of things with await
        return true; 
    })()` },
    async r => {
        console.log(r); // Logs array with single value [Object]
        console.log(await r[0]); // Logs empty Object {}
    }); 
Run Code Online (Sandbox Code Playgroud)

问题是回调结果r.它应该是一个脚本结果数组,因此我希望r[0]它是一个在脚本完成时解析的promise.

Promise语法(使用.then())也不起作用.

如果我在页面中执行完全相同的函数,它会按预期返回一个promise,并且可以等待.

知道我做错了什么,有什么办法吗?

javascript google-chrome-extension async-await es6-promise

5
推荐指数
3
解决办法
2909
查看次数

让 Visual Studio 2017 将 &lt;script type="module"&gt; 视为包含 JavaScript?

Visual Studio 2017 当前视为<script type="module">纯文本。

下面是一个示例项目问题现存

VS2017 语法高亮失败

我已经看到 VS 中的自定义处理支持<script type="template-type">- 这也可以应用(通过配置或扩展)以使其<script type="module">视为 JavaScript 吗?

javascript visual-studio es6-modules visual-studio-2017

5
推荐指数
0
解决办法
159
查看次数

在.NET Core SOAP服务中引用本地WSDL

我有一个本地.wsdl文件定义的SOAP服务,我想用它在Visual Studio 2017中生成.NET Core Connected Service.

ConnectedService.json看起来像这样:

{
  "ProviderId": "Microsoft.VisualStudio.ConnectedService.Wcf",
  "Version": "15.0.20119.1312",
  "ExtendedData": {
    "Uri": "C:\\Path\\MyUsername\\LocalRepository\\soap-service.wsdl",
    ...
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

问题是,对于访问此源并且不将其本地存储库放在与我完全相同的位置的任何其他人来说,这完全打破了.

我希望引用与项目相关"Uri": "soap-service.wsdl",但是会导致错误:

引用本地文件时出错

如何配置ConnectedService.json以便找到相对于.NET项目的本地文件?

wcf soap wsdl wcf-configuration .net-core

5
推荐指数
0
解决办法
633
查看次数