gpt4 book ai didi

javascript - element.html() 调用导致图像痉挛

转载 作者:行者123 更新时间:2023-11-28 06:23:09 24 4
gpt4 key购买 nike

这个问题有两个部分需要理解

问题声明

GetProdImage.cs

   //Retrieves image from db based on id
int id = Page.RouteData.Values["prod_id"];
Controller controller = new Controller();

DBContext context = GetDBContext();

ProductImage productImage = controller.GetImage(id);

context.Response.Clear();
context.Response.ContentType = "image/"+productImage.ImageExt;
context.Response.BinaryWrite(productImage.bindata);
context.Response.Flush();

JQuery HTML 构建

<script>
function ihatemylife()
{
debugger;
var html = "<img src=\"http://localhost:3756/GetProdImage/10\" style=\"max-width: 200px;\"/>" +
"<img src=\"http://localhost:3756/GetProdImage/11\" style=\"max-width: 200px;\"/>" +
" <img src=\"http://localhost:3756/GetProdImage/12\" style=\"max-width: 200px;\"/>";

$("#sm-test").html(html);
}

});
</script>
<div id="sm-test"></div>

请注意,每个图像只是一个红色数字。
它使用标准

插入到 DOM 元素中
$(element).html(html);

此构建产生以下结果:
每一栏都是一次页面刷新。请注意顺序如何永远不会相同。 enter image description here

检查页面(证明 html 正确)

enter image description here

调试信息

如果在 GetProdImage.cs 中放置断点,您可以看到插入 html 时会调用它。奇怪的是 id 的值反射(reflect)了痉挛图像的顺序,而不是 html 中反射(reflect)的内容。
即第一次迭代 GetProdImage 被调用为 12, 10, 12第二次迭代被称为 11,12, 12 等

这一观察让我认为这是我的 jQuery 实现的问题。

如果访问 GetProdImage 的每个 url,它将生成正确的图像。

enter image description here

所以要测试一下:

如果我将 GetProdImage() 全部删除并使用硬编码的 img src 值来表示公共(public)图像,如下所示:

    html += "<td><img title=\"" + i + "\" src=\"https://upload.wikimedia.org/wikipedia/commons/d/d0/DJCTQ_-_10.JPG\" />" +
"<img title=\"" + i + "\" src=\"https://upload.wikimedia.org/wikipedia/commons/9/9d/French_Military_Button_Rgmt_Number_11.jpg\"/>" + " <img title=\"" + i + "\" src=\"http://thumb1.shutterstock.com/display_pic_with_logo/569284/257460898/stock-photo-number-257460898.jpg\""/></td>";

结果令人惊讶:
图像每次都按正确的顺序排列。
enter image description here

我相信我的矛盾现在已经很清楚了。

从评论中调试1) 标签直接放置在页面上,而不是通过使用 GetProdImage 作为 src 的 jquery 调用每次都能正常工作。

2)Turing EnableSessionState="false"对于调用jquery的页面没有效果。

问题

什么会导致 GetProdImage 的行为以随机顺序接收(并返回)图像?
收到的随机数表明 JQuery 有问题。
硬编码的 img src 指向 GetProdImage。

我傻了。

这些是我的问题。

最佳答案

问题就在这里
GetProdImage.cs

int id = Page.RouteData.Values["prod_id"];

设置 ID 时发生竞争条件。
我将其更改为 HttpContext 驱动而不是 REST。

关于javascript - element.html() 调用导致图像痉挛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35347197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com