目前我正在处理一个web application,它使用txt文件作为数据库进行现在测试。但我们稍后会将它连接到服务器上。
我的问题是,如果有一种更有效的方式来获取我的对象而不是我现在使用的方式。
在page_init期间,我将所有对象都收集到一个Collection中作为List-< -TravelP-> - ,然后我用它填充页面中的ajax工具包手风琴对象。他们还发射了一些隐藏按钮的服务器端事件。
我有一些客户端按钮可以触发回调,让其他对象在更新面板中填充手风琴。
我使用.net集合太像字典和列表,我想知道使用数组是否更有效。
你能告诉我如何让这个网站变得更好更快吗?
在开始时在javascript中初始化那些TravelP对象是否更好或可能并使用它?
任何评论都会非常感谢, 感谢
答案 0 :(得分:1)
首先,我放松了UpdatePanels。如果性能是您所追求的,请忘记UpdatePanels。
相反,您可以编写ScriptService Web服务(在C#中)并从JavaScript代码中调用它们。这些特殊的Web服务可以返回.NET对象,然后可以在JavaScript代码中使用(确保它们是可序列化的。否则您需要编写自己的JavaScript序列化程序)。
我从那开始。这样做会为您带来最初的性能提升。之后,您可以考虑采取更多措施来增强代码。
答案 1 :(得分:1)
您可能希望将jQuery用于客户端JavaScript库。它使从.NET中创建的ASMX / WCF服务中提取数据变得非常容易。您可以通过各种方式返回XML / JSON数据,并使用jQuery DOM选择器轻松操作页面!
这是一个通过ASMX服务加载一些JSON数据的简单调用。
$.ajax({
type: "POST",
url: "demo.asmx/GetData",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{q:'a', limit: 10}", // Passing params to function!
success: function(res) {
// Do your work here.
// Remember, the results for a ASMX Web Service are wrapped
// within the key "d" by default. e.g. {"d" : "Hello World"}
}
});
这是一个示例ASMX服务返回LIST,它本来可以是任何东西。如果您已经有强类型的POCO对象,则可能已经使用类似的方法对数据进行了序列化。还有JSON.NET库,允许您序列化整个DataTable。
[WebService(Namespace =“http://tempuri.org/”)] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(假)] public class Autocomplete:System.Web.Services.WebService {
[WebMethod]
public List<string> GetData(string q, int limit)
{
// A collection to hold our results
List<string> customers = new List<string>();
// Our source of names, could be a DB query
string[] db = new string[]{"Amy","Betty","Brent","Fred","Mark","Sally","Sam","Richard","Wilma","Yolanda","Zack"};
// Looping through the datasource to select the items that match
foreach(string cust in db)
{
if(cust.ToLower().Contains(q.ToLower()))
{
customers.Add(cust);
}
}
// Sort the list
customers.Sort();
// Return the items that contained the text in alphabetical order
return customers;
}
}
你可以做很多事情,很多人都在写关于使用这些技术的文章。如果你刚刚开始,你应该看看WCF,因为它是ASMX服务的继承者!