我正在使用jQuery开发代码,需要存储与某些DOM元素相关的数据.关于如何使用html元素存储任意数据还有很多其他问题,但我更感兴趣的是为什么我会选择一个选项而不是另一个.
为了极其简化的参数,我想要存储一个"lineNumber"属性,其中每一行都是"有趣"的表.
选项1只是在每个DOM元素上设置一个expando属性(我希望我正确使用'expando'一词):
$('.interesting-line').each(function(i) { this.lineNumber = i; });
Run Code Online (Sandbox Code Playgroud)
选项2是使用jQuery的data()函数将属性与元素相关联:
$('.interesting-line').each(function(i) { $(this).data('lineNumber', i); });
Run Code Online (Sandbox Code Playgroud)
忽略我的示例代码的任何其他缺点,是否有充分的理由为什么您会选择一种方法来存储属性而不是另一种?
我们使用Guids作为数据库中实体的主键.传统上,我们遵循一种让INSERT期间数据库为实体设置ID的模式,我认为这主要是因为这通常是你使用自动增量字段或其他方式处理事物的方式.
我发现在对象构建过程中在代码中进行键分配更加方便,主要有两个原因:
有没有令人信服的理由不以这种方式做事?也就是说,当使用Guids作为密钥时,是否有充分的理由将密钥分配保留到数据库中?
编辑: 很多人对Guids是否应该用于PK(我知道)有强烈的意见,但这不是我的问题.
除了集群问题(如果正确设置索引似乎没有问题),我还没有看到避免在应用程序层中创建密钥的令人信服的理由.
简短版本:在启用AJAX的WCF服务中抛出异常时,是否有建议的方法将错误详细信息返回给客户端(除了打开大门并发回所有异常详细信息)?
长版:
我有一个相对简单的启用AJAX的WCF服务,我使用默认服务代理从客户端调用.我在下面提供了代码片段,但我不相信代码本身有任何问题.
我的问题是,如果我在服务中抛出异常,返回给客户端的错误对象总是通用的:
{
"ExceptionDetail":null,
"ExceptionType":null,
"Message":"The server was unable to process the request..."
"StackTrace":null
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想在客户端上显示不同的错误消息,具体取决于出错的地方.
一种选择是允许WCF故障中的异常,这将为我提供完整的堆栈跟踪和所有内容,但我很欣赏这方面的安全问题,这实际上是比我需要的更多信息.我能做的就是能够发回一个描述问题的字符串,但是我没有办法做到这一点.
我的服务代码:
[ServiceContract(Namespace = "MyNamespace")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class MyService
{
[OperationContract]
public void DoStuff(string param1, string etc)
{
//Do some stuff that maybe causes an exception
}
}
Run Code Online (Sandbox Code Playgroud)
在客户端:
MyNamespace.MyService.DoStuff(
param1,
etc,
function() { alert("success"); },
HandleError);
Run Code Online (Sandbox Code Playgroud)
其中"HandleError"只是一个通用的错误处理方法,可以显示有关错误的详细信息.
在CruiseControl.NET中,我设置了两个项目,一个用于构建,一个用于部署构建包.
我们的构建主要基于MSBuild,并且在运行时,仪表板会不断更新构建的最新输出.这意味着即使完整构建可能需要15分钟,您可以确切地看到它的位置,并且它正在取得进展.
部署是使用另一个工具运行的(VisualBuild,虽然我看到与PowerShell等其他工具相同的基本行为).这是另一个长期运行的任务,但在这种情况下,仪表板在进行时不会更新其输出.由于部署可能需要很长时间,因此很难判断事情是否正在进展或事情是否已停滞.输出将记录到CruiseControl.NET日志中,一旦完成,将显示在仪表板上,但在部署过程中不会显示.
有没有办法从仪表板上更新的其他任意长时间运行的任务获得类似实时的输出?是什么让MSBuild在这方面特别?
尝试导航到LogOn页面时,我不断收到此错误:
System.NullReferenceException:未将对象引用设置为对象的实例
抛出错误的代码行是:
<%= Html.OpenIdSelectorScripts(this, options, null)%>.
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么这行代码会抛出错误?
c# asp.net asp.net-mvc nullreferenceexception dotnetopenauth
我们使用rebar为我们的项目提取依赖项,其中许多来自github.我们的配置看起来像:
{deps, [
{cowboy, "", {git, "git://github.com/extend/cowboy.git", {branch, "master"}}}
]}.
Run Code Online (Sandbox Code Playgroud)
我理解得足够了,我通过反复试验了解了一些事情(例如,如何指定标签和变更集而不是分支),但我的google-fu无法找到任何关于什么的综合文档选项可用或他们做什么.
我特别想知道第二个值的目的是(通常是空字符串,但我偶尔会看到版本号和通配符),但是有关源控制选项的更多信息,或者只是文档一般会有所帮助.
使用 Spring Boot 2.6.1,如果我有一个application.properties如下所示的文件:
spring.datasource.url="jdbc://blahblah"
Run Code Online (Sandbox Code Playgroud)
我可以在运行时使用名为 的环境变量覆盖该值spring.datasource.url,并且我的应用程序将连接到环境变量中指定的数据库。
但是,如果我有一个等效的application.yaml文件,那么以这种方式指定环境变量似乎没有效果。
spring:
datasource:
url: "jdbc://localhost..."
Run Code Online (Sandbox Code Playgroud)
但是,如果我将环境变量重命名为SPRING_DATASOURCE_URL,覆盖将再次起作用。这在其他属性中似乎也是一致的(不仅仅是数据源 URL)。
浏览文档,并不清楚为什么会出现这种情况,除了 yaml 配置似乎通常与“正常”属性文件的处理方式略有不同。
这种行为是预期的吗?
我正在开发一个客户端 - 服务器应用程序,并负责添加对websockets运行的支持.我在服务器端使用Cowboy,并且一直在使用Erlang websocket客户端进行测试.
事情应该是这样的:
客户端模块实现
handle_info({Transport, Socket, Data}, StateName, State) ->
... do stuff with data ...
Run Code Online (Sandbox Code Playgroud)
当数据出现时,由底层传输(gen_tcp或ssl)调用.
当我配置要使用的客户端和服务器时,一切正常gen_tcp.当我改为使用时ssl,websocket握手完成,但在步骤4中,我得到一个回调handle_info,它只包含从服务器返回的数据的第一个字节.后续回调将包含响应的其余部分.
我真的很担心这种行为,因为交换gen_tcp的相同代码工作正常,我们有两个其他传输使用ssl(但不是websockets或cowboy)构建,同样不会出现这种行为.
任何人都可以建议可能导致数据以这种方式分裂的原因吗?如果我不需要,我宁愿不要为此写处理.
更新:仅仅为了踢,我修改了客户端,以便它等待两次回调发生,并在尝试解析它之前连接两者的数据.这解决了这个问题,但仍让我感到困惑.
我注意到了一些事情:
不知道这是否相关.
我有以下有效的查询,将带时间戳的“观察”分箱到其边界由 bin 表定义的桶中:
SELECT
count(id),
width_bucket(
time :: TIMESTAMP,
(SELECT ARRAY(SELECT start_time
FROM bins
WHERE owner_id = 'some id'
ORDER BY start_time ASC) :: TIMESTAMP[])
) bucket
FROM observations
WHERE owner_id = 'some id'
GROUP BY bucket
ORDER BY bucket;
Run Code Online (Sandbox Code Playgroud)
我想修改它以允许查询从指定时间戳开始的任意 n 分钟 bin,而不必从实际的“bins”表中提取。
也就是说,给定开始时间、以分钟为单位的“bin 宽度”和 bin 数量,有没有办法生成时间戳数组以传递到函数中width_bucket?
或者,是否有不同/更简单的方法来获得相同的结果?
我有一个用 Kotlin 编写的 Spring 启动应用程序,我想在 Redis 中启用缓存。我希望将对象存储为序列化的 JSON,理想情况下不想注册可能被缓存的每种类型。我有一些最有效的配置,但有一个很大的警告。
@Bean
fun redisCacheConfiguration(): RedisCacheConfiguration {
val objectMapper =
ObjectMapper()
.registerModule(KotlinModule())
.registerModule(JavaTimeModule())
.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY)
val serializer = GenericJackson2JsonRedisSerializer(objectMapper)
return RedisCacheConfiguration
.defaultCacheConfig()
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(serializer))
}
Run Code Online (Sandbox Code Playgroud)
我在理解 的不同值时遇到了一些麻烦,DefaultTyping但NON_FINAL似乎是最广泛的。但是,由于 Kotlin 中的对象默认是 final 的,这仅适用于标记为“open”的对象。理想情况下,我想避免“打开”对象只是为了缓存它们。
有没有其他方法可以让我完成这项工作?
我正在尝试使用关联的 ServiceAccount 创建 Kubernetes 部署,该 ServiceAccount链接到 AWS IAM 角色。此 yaml 产生所需的结果,并且相关的部署(包含在底部)正确旋转:
apiVersion: v1
kind: ServiceAccount
metadata:
name: service-account
namespace: example
annotations:
eks.amazonaws.com/role-arn: ROLE_ARN
Run Code Online (Sandbox Code Playgroud)
但是,我想改用 Terraform Kubernetes 提供程序来创建 ServiceAccount:
resource "kubernetes_service_account" "this" {
metadata {
name = "service-account2"
namespace = "example"
annotations = {
"eks.amazonaws.com/role-arn" = "ROLE_ARN"
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我以这种方式创建 ServiceAccount 时,我的部署的 ReplicaSet 失败并显示错误:
Error creating: Internal error occurred: Internal error occurred: jsonpatch add operation does not apply: doc is missing path: "/spec/volumes/0"
Run Code Online (Sandbox Code Playgroud)
我已经确认,部署是通过 Terraform 创建还是通过kubectl; …
我有一个包含多个搜索(文本)字段的表单.当文本输入其中一个字段时,我想禁用其他字段.相反,如果从活动文本字段中删除所有文本,则应重新启用其他字段.
基本的想法是这样的(我认为):
$(document).ready(function() {
$("input[@type=text]").keypress(function(e) {
if(current textbox has text in it)
{
//disable all textboxes that aren't this one
}
else
{
//enable all textboxes
}
});
});
Run Code Online (Sandbox Code Playgroud)
我不清楚找到/使用"所有不是这个文本框"的最简单方法是什么.
我已经按照此处的说明配置了 S3 支持的 Maven 存储库,例如:
repositories {
maven {
url "s3://myCompanyBucket/maven2"
authentication {
awsIm(AwsImAuthentication) // load from EC2 role or env var
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试将我的脚本转换为使用 Kotlin DSL 而不是 groovy,但无法找出等效的代码,特别是该authentication部分的代码。
上面的 Groovy 代码片段的等效 Kotlin DSL 是什么?
asp.net ×2
c# ×2
erlang ×2
jquery ×2
spring-boot ×2
ajax ×1
amazon-eks ×1
asp.net-mvc ×1
ccnet-config ×1
cowboy ×1
expando ×1
gradle ×1
guid ×1
jackson2 ×1
javascript ×1
json ×1
kotlin ×1
kubernetes ×1
postgresql ×1
rebar ×1
sql ×1
ssl ×1
terraform ×1
wcf ×1
websocket ×1
yaml ×1