问题标签 [ajax]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
修改 AJAX 应用程序中的地址栏 URL 以匹配当前状态
我正在编写一个 AJAX 应用程序,但是当用户在应用程序中移动时,我希望地址栏中的 URL 能够更新,尽管没有重新加载页面。基本上,我希望他们能够在任何时候添加书签,从而返回到当前状态。
人们是如何处理在 AJAX 应用程序中维护 RESTful 的?
AJAX WebControls 的简单方法
我有一个正在尝试优化的 Web 应用程序。一些控件隐藏在 dialog-styleDIVs
中。所以,我想让它们仅在用户想要查看它们时通过 AJAX 加载。这对于大多数基于文字的控件(各种菜单和小部件)来说很好,但是当我有我所谓的“脏”控件时——那些将大量信息写入ViewState
、在页面上放置大量 CSS 或脚本的控件,需要很多引用等 - 这些似乎不可能“移出页面”,特别是考虑到 ASP.NET 将如何对回发做出反应。
我正在考虑某种步骤,我覆盖 Render,找到我想要移出的位的标记并将 AJAX 占位符放在那里,但不仅服务器开销看起来很极端,而且感觉就像一个完整的 hack。此外,这里的关键元素是包含带有验证控件的表单的对话框,我无法想象如何移动控件及其所需的脚本。
在我狂热的想象中,我想这样做:
可悲的是,我知道这是一场梦。
在不给服务器造成过多负载的情况下,我能真正接近快速简单的 AJAXification 吗?
使用 ASP.NET AJAX / ICallbackEventHandler 跟踪状态
我在维护 ASP.NET AJAX 页面中的状态时遇到问题。简短版本:在进行异步回调后,我需要一些方法来更新页面 ViewState,以反映服务器在异步调用期间所做的任何状态更改。
这似乎是一个常见问题,但我将描述我的场景以帮助解释:
我有一个类似网格的控件,它具有一些 JavaScript 增强功能——即拖放列和行的能力。当一列或一行被放到一个新位置时,调用一个 AJAX 方法来通知控制服务器端并触发相应的服务器端事件(“OnColumnMoved”或“OnRowMoved”)。
默认情况下,ASP.NET AJAX 调用将整个页面作为请求发送。这样页面会经历一个完整的生命周期,视图状态会被持久化,并且控件的状态会在调用 RaiseCallbackEvent 方法之前恢复。
但是,由于 AJAX 调用不会更新页面,因此 ViewState 会反映控件的原始状态,即使在移动列或行之后也是如此。因此,第二次发生客户端操作时,AJAX 请求会发送到服务器,并且页面和控件会重新构建以反映控件的第一个状态,而不是移动第一列或第一行之后的状态。
这个问题延伸到许多方面。例如,如果我们有一个客户端/AJAX 操作来向网格添加一个新项目,然后拖动一行,则网格是在服务器端构建的,比客户端少一个项目。
最后,对于我的具体示例,最重要的是,我们正在操作的实际数据源对象存储在页面 ViewState 中。这是一个设计决定,允许保留被操纵数据的有状态副本,这些副本可以在多次操作后提交给 DB,或者在用户退出时丢弃。这是很难改变的。
因此,再次,我需要一种方法来在触发 AJAX 方法后在回调时更新页面 ViewState。
什么是渐进增强?
Jeff 在谈到使用 JQuery 编写 stackoverflow 时提到了“渐进增强”的概念。
在快速谷歌之后,我发现了一些关于它的高级讨论。
任何人都可以推荐一个开始作为程序员的好地方。
具体来说,我一直在用 PHP 编写 Web 应用程序,并希望使用 YUI 来改进我正在编写的页面,但其中很多似乎都非常基于 JavaScript,大部分工作都是使用 JavaScript 完成的。对我来说,这似乎有点矫枉过正,因为在没有 Javascript 的情况下查看该网站可能会破坏大部分内容。
任何人都有一些开始使用这个想法的好地方,我并不关心语言。
理想情况下,我想看看您是如何首先开始创建静态 HTML,然后将 YUI(或任何 Ajax 框架)添加到其中以便获得更丰富的客户端的好处?
ASP.NET AJAX 部分呈现可以在 SharePoint 2007 应用程序页面中工作吗?
我有一个带有 myScriptManager
和 my的简单页面UpdatePanel
,并且 myContentTemplate
有一个ListBox
和一个标签。我只是想抓住它OnSelectionChanged
,这样我就可以更新Label
. 无论我尝试调整什么设置,我总是会收到整页的回传。
这真的行不通,还是我只是搞砸了?
调试:IE6 + SSL + AJAX + post form = 404 错误
设置:
有问题的程序尝试通过 AJAX 调用将表单数据发布到与调用者相同的包中包含的目标过程。这是为使用安全连接 (HTTPS) 的站点完成的。这里使用的技术是PLSQL和DOJO JavaScript 库。该开发工具基本上是一个文本编辑器。
代码片段:
问题:
当使用 IE6(整个用户群都使用)时,从服务器发回的响应是 404 错误。
观察:
该程序在 Firefox 中运行良好。
调用过程不能针对同一包中的任何过程。
调用过程可以针对外部站点(http、https)。
包中不是表单数据帖子的其他 AJAX 调用工作正常。
我搜索了互联网并咨询了高级技能的团队成员,并没有发现任何令人满意的解决问题的方法。*在 Dojo 支持论坛上
尝试过问答。
问题:
您推荐哪些故障排除技术?
对于 HTTPS 分析,您推荐哪些故障排除工具?
关于问题可能是什么的任何假设?
对于不是完全(坏)黑客的解决方法有什么想法吗?
埃德。解决方案
lomaxx,感谢提琴手提示。您不知道获得它并将其用作调试工具有多棒。启动后,这是我发现的以及我如何修复它(至少在短期内):
在看到来自服务器的消息后,我又在 Fiddler 周围踢了一脚,看看我还能从中学到什么。发现有一个 WebForms 选项卡显示了 Web 表单中的值。你不知道吗,xxx_DISPLAYED_
上面的“”字段就在里面。
我还不明白为什么这些字段存在,因为我没有在 WebPLSQL
代码中明确创建它们。但我现在确实明白目标过程必须将它们作为参数包含在内才能正常工作。同样,这仅适用于IE6
我,因为 Firefox 运行良好。
好吧,这是短期的答案并破解它来修复它。希望在这个领域做更多的工作能够更好地理解这里的基本原理。
ICE Faces fileInput 文件路径和文件名属性
我想利用 ICE Faces fileInput 控件根据用户选择的文件填写文件路径和文件名,以输入到网页上的输入字段。如何在不实际执行任何文件传输操作的情况下捕获这些属性?
加速 ASP.Net 网站或应用程序
我有一个启用 Ajax.Net 的 ASP.Net 2.0 网站。网站和数据库的托管和数据库的架构一样不受我控制。在对硬件进行测试时,我确实控制了该站点的性能,但是在客户端的硬件上,重新加载或更改页面时会出现明显的延迟。
我想做的是让我的应用程序在交付时尽可能紧凑和快速。一种想法是为站点的所有静态资源设置到期日期,这样它们就不会在页面加载时被调用。资源是指图像、链接样式表和 JavaScript 源文件。是否有捷径可寻?
还有哪些其他方法可以优化 .Net 网站?
更新:我在网站上运行了 YSlow,而我受到打击最大的领域是加载的 JavaScript 和样式表的数量(23 个 JS 文件和 5 个样式表)。Ajax.net 和 Asp 已插入除一个(主样式表)之外的所有内容。为什么这么多?
使用 JavaScript 滚动溢出的 DIV
我有一个 div,它使用 overflow:auto 将内容保留在 div 中,因为它被调整大小并在页面上拖动。我正在使用一些 ajax 从服务器检索文本行,然后将它们附加到 div 的末尾,因此内容向下增长。每次发生这种情况时,我想使用 JS 将 div 滚动到底部,以便可以看到最近添加的内容,类似于聊天室或命令行控制台的工作方式。
到目前为止,我一直在使用这个片段来做到这一点(我也在使用 jQuery,因此使用了 $() 函数):
然而,它给了我不一致的结果。有时它可以工作,有时不能,如果用户手动调整 div 大小或移动滚动条,它就会完全停止工作。
目标浏览器是 Firefox 3,它被部署在一个受控的环境中,所以它根本不需要在 IE 中工作。
有什么想法吗?这个让我难住了。谢谢!
ASP.net AJAX 拖放?
我想知道是否有人知道是否有预先制作的解决方案:我在 ASP.net 网站上有一个列表,我希望用户能够通过拖放重新排序列表。此外,我希望有第二个列表,用户可以将项目从第一个列表拖到其中。
到目前为止,我找到了两个解决方案:
- Ajax Control Toolkit中的 ReorderList需要一些手动工作来确保将更改持久保存到数据库中,并且不支持列表之间的拖放。
- Telerik的RadGrid可以满足我的所有需求,但价格远远超出我的预算。
是否还有其他人有一些想法或至少有一些关键字/指针可以进行进一步调查?特别是两个列表之间的拖放是我对如何在 ASP.net 中执行此操作一无所知。
顺便说一下,目标框架是 3.0。