在YC++中如何实现Ajax功能

本文介绍如何使用YC++实现Ajax功能,通过一个具体示例展示了只更新页面部分内容的方法,从而提高用户体验并节约网络资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                       在YC++中如何实现Ajax功能

    在Web页面中,有时当用户点击一个按钮后,只有其中的一小块内容将要发生变化。在使用Ajax以前,一般必须刷新整个页面,无论页面中变化的部分还是没有变化的部分,都要从服务器中重新读取。使用Ajax后,只需要从服务器中读取变化了的那一部分,如此,不但减少了等待时间,还节省了网络带宽资源。
    在YC++中也可以实现Ajax功能,下面举例说明其原理及用法。
    首先创建一个主窗口, 在主窗口创建一个HTML窗口, 将网页rdweb.htm调入HTML窗口。
    在界面的输入框中敲入完整的网址,点击“读网页”按钮,即可将指定的网址文本读入编辑框中。
    这说明,每改变一次网址并按下按钮,页面中只有编辑框内容改变,因此只需重读编辑框中的内容,而其它内容不必重读。
    下面这个例子实现了这个功能,因而也就实现了Ajax功能。

/*****************************************************************************************************************/
将下列代码存入名字任取的文件, 如: ajax.cpp
在yc++中, 用 <文件 打开或创建cpp源程序> 调入ajax.cpp, 再用 <工具 执行> 运行ajax.cpp
   或在dos中, 用 ycc ajax.cpp 生成 ajax.exe, 再运行ajax.exe
在vc++中, 用 cl ajax.cpp 生成 ajax.exe, 再运行ajax.exe




#ifndef YCC
#include       
#include        "include/ycapi.h"

#pragma         comment(lib, "gdi32.lib")
#pragma         comment(lib, "user32.lib")
#pragma         comment(lib, "yxbapi.lib")
#endif


int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
    int WINAPI MainWndProc(HWND hwnd,UINT iMessage,UINT wParam,LONG lParam,void *pUserData);
    HWND hwnd = YXB_Window(MainWndProc,NULL,0,             //创建主窗口. 用YC++的API函数创建, 它不需要注册.
      WS_OVERLAPPEDWINDOW | WS_CAPTION | WS_SYSMENU,
      "YC++实现Ajax功能",110,50,800,600,NULL,WT_WIN);

    MSG  msg;
    while(GetMessage(&msg,NULL,0,0))
      {
 TranslateMessage(&msg);
 DispatchMessage(&msg);
      }
    return 0;
}

int WINAPI MainWndProc(HWND hwnd,UINT iMessage,UINT wParam,LONG lParam,void *pUserData)
{
    static HWND  hwndHtml;
    switch(iMessage)
      {
 case WM_CREATE:
      hwndHtml = YXB_Window(NULL,0,WS_EX_CLIENTEDGE,0,NULL,0,0,0,0,hwnd,WT_HTML); //创建HTML窗口
      WEB_PAGE  apage;
      memset(&apage,0,sizeof(apage));
      apage.href = "rdweb.htm";
      SendMessage(hwndHtml,WM_COMMAND,WEB_A,(int)&apage);   //调入网页
      return FALSE;
 case WM_SIZE:
      RECT mRect;
      GetClientRect(hwnd,&mRect);
      MoveWindow(hwndHtml,0,0,mRect.right,mRect.bottom,TRUE);
      return TRUE;
 case WM_DESTROY:
      PostQuitMessage(0);
      return FALSE;
      }
    return DefWindowProc(hwnd,iMessage,wParam,lParam);
}

/*****************************************************************************************************************/
/*****************************************************************************************************************/
将下列HTML文本拷入指定文件: rdweb.htm

/*****************************************************************************************************************/

输入网址:
www.sohu.com"
 style="font-size:28; width=480; color:red; border:4 green solid; background-color:RGB(185,185,185);">



/*****************************************************************************************************************/
该例子需将YC++的下列几个文件拷入源程序所在目录:

   YC01/yxbapi.dll    C/C++编译器, 浏览器内核库
   YC01/yxbimg.dll    图象, 动画解码库
   YC01/yxbext.dll    浏览器内核交互代码库
   YC01/yc.ah         C/C++编译器头文件包
   YC01/yc.cmp        C/C++编译器错误信息

   YC01/include/ycapi.h         用其它编译器运行该例时所需头文件
   YC01/include/yxbapi.lib      用其它编译器运行该例时所需库文件, 如VC6.0
 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值